引き続き 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 Va
![関数型言語の勉強にSICPを読もう - (62) 4章 - 超言語的抽象(220ページ) C++でSchemeインタプリタを作ろう11 - higepon blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/988f90172ef53b77eb2425d7ee9ddebe67b5aa2d/height=288;version=1;width=512/http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FP%2F489471163X.09.MZZZZZZZ.jpg)