方案关闭功能

时间:2011-10-11 02:42:51

标签: scheme closures

我得到了一些Scheme代码,并且负责将代码转换为Perl。

(define (makecounter)
 (let ((x 0)) (lambda () (begin (set! x (+ x 1)) x))))

我知道这应该是一个闭包函数,但是我不能完全理解它应该做的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

提示:

(define c1 (makecounter))
(define c2 (makecounter))
(c1)
=> 1
(c1)
=> 2
(c1)
=> 3
(c2)
=> 1
(c2)
=> 2
(c1)
=> 4