SICP問題3.10
(define (make-withdraw initial-amount) (let ((balance initial-amount)) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))))
上の make-withdraw を環境モデルを絵で描く
(define W1 (make-withdraw 100))でW1オブジェクト作成後の環境
(W1 50)の呼び出し前の環境
(W1 50)の呼び出し後の環境
(define W2 (make-withdraw 100))でW2オブジェクト作成後の環境
(2009/12/10修正 W2とW1の関数本体が共有されているように図を修正)