2

しばらく探していたのですが、適切な質問が見つからなかったので投稿させていただきます。まだ投稿されていないことを願っています。

何のセットか分かりました!やらせください、しかし、なぜ設定するのかわかりません! letのローカル変数を変更し、その値を永久に保持できます。例えば:

(define count
  (let ((cont 0))
    (lambda ()
      (set! cont (+ cont 1))
      cont)))

数回評価(カウント)すると、結果は次のようになります。

> (count)
1
> (count)
2
> (count)
3
> 

... 等々。しかし、私が理解している限り、contはローカル変数ですが、なぜ値を保持するのでしょうか? 関数が呼び出されるたびに 0 に設定されないのはなぜですか?

そうですね:) よろしくお願いします!

PS: 英語で失礼します *o*

4

1 に答える 1