関数型言語の勉強にSICPを読もう - (68) 4章 - 超言語的抽象(222-228ページ) C++でSchemeインタプリタを作ろう17

4.1.3「評価器のデータ構造」、4.1.4「評価器をプログラムとして走らせる」あたりは自力でC++で書いたのでクリアしているので飛ばす。


今日は現在サポートしている syntax のテストコードを書きました。
書いている中で not, eq などの primitive procedureが必要な気がしてきました。

  • (assert-equal)を実装
  • (display "\n")が \n と表示されてしまう現象があって調べたら Toknizerで "\n" が \\ + n と解釈されていたのが原因だった。
  • 負の数値が扱えないバグの修正
  • (newline)を実装(display "\n")で良いことにしよう
  • stringのtoStrが微妙
  • テストコード
    • lambda
    • define
    • if
    • cond
    • +
    • -
    • let
    • let*
    • cons/car/cdr
    • number?
    • string->number
    • and
    • or
    • string?
    • =
    • >

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


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