【发布时间】:2013-08-30 12:55:09
【问题描述】:
我一直在寻找一段时间,但我找不到合适的问题,所以我会发布它。我希望还没有发布。
我明白set!和let是做什么的,但是我不明白为什么set!可以修改让并永远保持价值。例如:
(define count
(let ((cont 0))
(lambda ()
(set! cont (+ cont 1))
cont)))
如果我们多次评估 (count),我们会看到结果是
> (count)
1
> (count)
2
> (count)
3
>
... 等等。但是,据我了解, cont 是一个局部变量,那么为什么它会保留这个值呢?为什么每次调用函数都不设置为0?
嗯,那就是:) 提前致谢!
PS:对不起,我的英语*o*
【问题讨论】: