さかもとのブログ

つらつらと

SICP演習問題4.22

やっと4.1の終わりが見えてきた.
analyze付きがなかなか実行できずはまった.
原因はscan-ouf-defines用にmake-procedureを変えていたのを忘れていて,そのままanalyze付きの評価器を実行しようとしたため.

今日はもうお終い.

解答は

[(let? exp) (analyze (let->combination exp))]

をanalyzeに追加するだけ.
let->combinationでletはlambda式に変換されるので,変換後の式を再びanalyzeに渡してやればよい.
したがって,名前つきlet, let*もそのまま使える.