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

引き続き Primitive Procedureの実装。今日は cons/car/cdr 。
Lispには欠かせない要素です。


Pairというクラスを用意してあげて、 consのapply時に Pair を返す。
car/cdr は Pair を受け取り、それぞれ first/secondを返す。
という実装です。


例のごとく以下のように名前空間に追加する。

    environment->defineVariable(new Variable("+"), new Plus());
    environment->defineVariable(new Variable("cons"), new Cons());
    environment->defineVariable(new Variable("car"), new Car());
    environment->defineVariable(new Variable("cdr"), new Cdr());


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


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