我一直在努力通過在線方式的教程和感到困惑的下面的代碼:定義一個函數來調用嵌套函數
(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「鼎」和「東」被顯示。我相信這與這個問題是一致的。提前致謝!