我实际上是为了好玩而阅读这本书,但它可能被视为家庭作业。无论如何,我对这种语言的局部状态变量完全不满意......以这段代码为例:
(define flip
(let ((count 0))
(lambda ()
(if (= 0 count)
(begin (set! count 1) count)
(begin (set! count 0) count)))))
为什么这段代码在 1 和 0 之间交替出现?每次调用此函数时,count 的值都为 0!一个python等价物是:
class Flip:
def __init__(self):
pass
def __call__(self):
count = 0
if count == 0:
count = 1
return count
else:
count = 0
return count
这每次都会返回相同的内容。我很困惑...