SICP 読み (99) 3.2 評価の環境モデル
参考になる、と言いつつスルーしかけていたんですが、昨晩のエントリでくそボケをぶちカマシていたんでちょっと放っておけない、とゆー事で。
まず、問題で例示されている手続きは lambda 使って書き換えると以下。見事にカマしてしまっています (とほほほ
(define (make-widthdraw initial-amount) ((lambda (balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))) initial-amount))
ただ、これをマンガにするのが微妙。
基本的に W1 が束縛されているのはテキスト p.143 の図 3.7 と同じマンガで良いと思うのですが、 make-widthdraw が束縛されている手続きの書き方が分からない。
最初に思い付いたのはそのまんま、だったんですが make-widthdraw が指す body (手続き) はそのまんんま書けば OK なのか、それとも ... なのでしょうか。
あるいは、オブジェクト指向的な_属性_という部分から見るに、ローカル環境が balance とその束縛を表現、っつーのも若干微妙。
やっぱ問題 3.11 はスルーで次の節に進んだ方が良いのかな。(弱
追記
束縛されている
ではなくて「〜を束縛している」というのが正しい表現か。