SICP 読み (301) 5.4 積極制御評価器

体調不良にて早退。問題 5.30 の a.については動作確認だけなのでとりあえずヤってみます。

問題 5.30 の a.

盛り込み始めて判明したんですが、(300) なエントリのコードは括弧が省略されているものがあるな。(とほほほ
ch5-eceval.scm な修正で branche ってヤってるトコもあった。で動作確認したら set! は変数が define されてなくてもエラーにならん。
なぜだ、って val にセットしてないじゃん。

  (perform
   (op set-variable-value!) (reg unev) (reg val) (reg env))

面倒なので assign にしちゃえ

  (assign val (op set-variable-value!) (reg unev) (reg val) (reg env))

これで unbound variable な関係は確認 OK で良いのかなぁ。簡単な確認ベースでは extend-environment な関係については問題ない模様。もし元気が持続すれば、問題 5.30 の b.についても (以下略