関数型言語の勉強にSICPを読もう - (58) 4章 - 超言語的抽象(220ページ) C++でSchemeインタプリタを作ろう6
lamdaが動いた!。(前回アドバイスを下さった arinoさん、shiroさんありがとうございました)
((lambda (a) "test") 3) =>EVAL: "test"
構文解析をして「(」の直後にある要素は Applicationの本体、それ以外は Applicationの引数とします。
その時点では当然 Applicationの本体がどういう作用があるのかはわかりません。
極端な言い方をすれば構文を間違っていて eval 時にエラーになる可能性もあります。
例に出した、lambdaが動いているので基礎部分はある程度めどが立ったかな。
直近の todo は
- evalを各オブジェクトへ移動
- main.cppのリファクタリング
- Environmentのバグの原因特定
- primitive procedureのサポート
あたりかな。
計算機プログラムの構造と解釈
posted with amazlet on 06.05.31