我一直在努力通过在线方式的教程和感到困惑的下面的代码:定义一个函数来调用嵌套函数
(define make-bank-account
(lambda (balance)
(display "Ding")
(lambda (n)
(display "Dong")
(set! balance (+ balance n))
balance)))
(define account1 (make-bank-account 10))
;; My code
(define account2
(lambda (x)
((make-bank-account 10) x)))
那为什么帐户2不从通话累计余额打电话,而account1呢?例如:
(account1 5)
-> Dong
;Value: 15
(account1 10)
-> Dong
;Value: 25
(account2 5)
-> DingDong
;Value: 15
(account2 10)
-> DingDong
;Value: 20
我一直在使用“鼎”和“冬”测试的代码后发现,在调用时帐户1“鼎”从不显示,同时呼吁双方帐户2“鼎”和“东”被显示。我相信这与这个问题是一致的。提前致谢!