2.3.1 Quotation
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_sec_2.3.1
ここは問題自体は簡単なのだが、quoteという演算子は結構くせ者な気がする。
こいつは、General Formなんだろうか? それともSpecial Formなのだろうか?
例えば、
gosh> (x 1) *** ERROR: unbound variable: x gosh> (quote ((x 1) (y 2) (z 3))) ((x 1) (y 2) (z 3))
となる。至極当然。
とすると、結局引数が評価されていないわけで、quoteはSpecial Formと言うことになる。
ま、今の段階ではどっちでもいいような気がするが。
問題2.53
タイプするだけなので省略。
問題2.54
equal?のMy定義
(define (myequal? a b) (cond ((and (pair? a) (pair? b)) (and (myequal? (car a) (car b)) (myequal? (cdr a) (cdr b)))) ((and (not (pair? a)) (not (pair? b))) (eq? a b)) (else #f)))
問題2.55
最初、
(car ''abracadabra) (car (quote (quote abracadabra)))
と等価だからだろ、と思っていたのだけど、コレって、結局quoteがSpecial Formだから、と言うのが解答になるのかな。