Schemeをつくろう(10) SICPの問題を僕のSchemeで解く
簡単な所から攻めてみます。クオートも特別な関数のようです。
構文要素の追加
字句&構文解析にひとこと加えてっと。
case '\'' : return cons(symbol("quote"), cons(read_to_stream(s),null()));
'があったら、要素を(quote 中身)で囲みます。
文法の追加。
static object quote_syntax(object env, object o) { return cons(env, car(o)); }
一行だけ。クオートが現れたら、evalせず返す。それだけ。