関数型言語の勉強に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?
- =
- >
計算機プログラムの構造と解釈
posted with amazlet on 06.05.31