関数型言語の勉強に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のサポート


あたりかな。


※「SICPを読もう」の目次はこちら


計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン 和田 英一
ピアソンエデュケーション (2000/02)
売り上げランキング: 56,404