我得到了一些Scheme代码,并负责将代码转换为Perl.
(define (makecounter)
(let ((x 0)) (lambda () (begin (set! x (+ x 1)) x))))
Run Code Online (Sandbox Code Playgroud)
我知道这应该是一个闭包函数,但是我不能完全理解它应该做的事情.有任何想法吗?
暗示:
(define c1 (makecounter))
(define c2 (makecounter))
(c1)
=> 1
(c1)
=> 2
(c1)
=> 3
(c2)
=> 1
(c2)
=> 2
(c1)
=> 4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
169 次 |
最近记录: |