内部状態 の取り扱いで新たな発見
ココを見ていたら新たな新事実が。
http://www.shido.info/lisp/scheme_asg.html
(define (make-bank-account amount) (lambda (n) (set! amount (+ amount n)) amount)) (define yamada-bank-account (make-bank-account 1000)) (yamada-bank-account 5000) ;6000 (yamada-bank-account -5500) ;500
え、、、lambda の内部状態って保存してあるのか。
Lispすごいなぁ。
でも、MyLisp(仮称)では対応できてない。
今の実装では Lambda を評価するときの内部状態は
その時だけの使い捨てにしていた。><;
このままでは上記のコードの結果にはならない。
どうやって実装しようかなぁ。
moremagic
2013-07-12