我正在为我的计划决赛和本地州的对象学习一直是一个艰难的课题。了解当地国家的对象 - 计划
这是我期末考试中的一个问题,我需要帮助。
(define (make-incrementer n)
(let ((old 0)
(new 0))
(lambda()
(cond ((< new n)
(set! old new)
(set! new (+ new 1))
old)
(else
(set! old 0)
(set! new 1)
old)))))
(define a (make-incrementer 3))
(define b (make-incrementer 3))
(define c a)
; 1) (a)
; 2) (a)
为什么当第二次调用a
时返回1?我正在看代码,我们给它的n
总是3.所以不会总是做else
的情况吗?
有时,理解是通过代码布局来促进的,因为这使得不同名称的范围**显而易见**。 – GoZoner 2013-05-14 02:28:05
@GoZoner事实上,感谢上帝的C-M- \在emacs – jozefg 2013-05-14 02:31:09
和'M-x untabify'发布到SO – GoZoner 2013-05-14 02:33:12