Lisp Scheme Part39
■ このスレッドは過去ログ倉庫に格納されています
0296デフォルトの名無しさん
2014/11/13(木) 23:24:36.50ID:7ZjHj42h(let ((count 0)) (lambda () (set! count (+ count 1)) count)) という式を
評価した結果の値だ、って所まではOK?
んで、その let 式の評価は、その define の時の 1 回だけしか起きない...
ということがわかってないようだから、OKでもなさそうだがとにかく次へ行く。
count に 0 を束縛した状態で、
(lambda () (set! count (+ count 1)) count) を評価したものが make-counter になるわけだけど、
その lambda を評価すると「count を束縛した状態」というものを抱え込んだもの(閉包)に
なって、それを毎回実行するので、カウントが増えていくわけ。
■ このスレッドは過去ログ倉庫に格納されています