07/12/20 22:42:20
def makecounter():
number=[0]
def _makecounter(x):
if x=="init":
number[0]=0
elif x=="inc" :
number[0] +=1
elif x=="dec" :
number[0] -=1
return number[0]
return _makecounter
counter=makecounter()
print counter("init")
print counter("inc")
print counter("dec")
>>226からのリンク先を見てクロージャでカウンタ作れました。
pythonってクロージャの中の変数書きかえれないので
numberに無名配列のポインタを入れてそこを操作するって感じなんですね。
mapの中に副作用持ちのlambda式入れられないとかlispとはかなり違うんだな。
うーん、pythonってなんか変w