程式設計的科學/SwayPresentations/物件/EnvironmentsAsObjects
外觀
環境作為物件
如果您將現有“物件”用作“物件”,那麼環境會是更好的選擇。
在 Scheme 中,環境是一等“物件”。
(define (account amount)
(define (deposit d) (set! amount (+ amount d)))
(define (withdraw w) (set! amount (- amount w)))
(procedure-environment (lambda () 1))
)
我們需要“點”運算子
(define (dot obj message)
(eval message obj)
)
現在,我們的帳戶看起來像
(define a (account 100)) ((dot a 'withdraw) 10) ((dot a 'deposit) 20)