しばらく探していたのですが、適切な質問が見つからなかったので投稿させていただきます。まだ投稿されていないことを願っています。
何のセットか分かりました!やらせてください、しかし、なぜ設定するのかわかりません! letのローカル変数を変更し、その値を永久に保持できます。例えば:
(define count
(let ((cont 0))
(lambda ()
(set! cont (+ cont 1))
cont)))
数回評価(カウント)すると、結果は次のようになります。
> (count)
1
> (count)
2
> (count)
3
>
... 等々。しかし、私が理解している限り、contはローカル変数ですが、なぜ値を保持するのでしょうか? 関数が呼び出されるたびに 0 に設定されないのはなぜですか?
そうですね:) よろしくお願いします!
PS: 英語で失礼します *o*