1
我得到了這一位Scheme代碼,並且負責將代碼翻譯成Perl。方案關閉功能
(define (makecounter)
(let ((x 0)) (lambda() (begin (set! x (+ x 1)) x))))
我知道這應該是一個閉包函數,但我不能完全得到這應該做的。有任何想法嗎?
我得到了這一位Scheme代碼,並且負責將代碼翻譯成Perl。方案關閉功能
(define (makecounter)
(let ((x 0)) (lambda() (begin (set! x (+ x 1)) x))))
我知道這應該是一個閉包函數,但我不能完全得到這應該做的。有任何想法嗎?
提示:
(define c1 (makecounter))
(define c2 (makecounter))
(c1)
=> 1
(c1)
=> 2
(c1)
=> 3
(c2)
=> 1
(c2)
=> 2
(c1)
=> 4
我需要的功能!謝謝。 –
看起來返回將增加一個變量 – Joe