問題2.53、問題2.54、問題2.55 – SICP(計算機プログラムの構造と解釈)その67

問題2.53

(list 'a 'b 'c)
gosh> (a b c)

(list (list 'george))
gosh> ((george))

(cdr '((x1 x2) (y1 y2)))
gosh> ((y1 y2))

(cadr '((x1 x2) (y1 y2)))
gosh> (y1 y2)

(pair? (car '(a short list)))
gosh> #f

(memq 'red '((red shoes) (blue socks)))
gosh> #f

(memq 'red '(red shoes blue socks))
gosh> (red shoes blue socks)

問題2.54

(define (equal? a b)
  (cond ((and (not (pair? a)) (not (pair? b)))
         (eq? a b))
        ((and (pair? a) (pair? b))
         (and (equal? (car a) (car b)) (equal? (cdr a) (cdr b))))
        (else #f)))

(equal? 'a 'a)
gosh> #t

(equal? 'a 'b)
gosh> #f

(equal? '(this is a list) '(this is a list))
gosh> #t

(equal? '(this is a list) '(this (is a) list))
gosh> #f

問題2.55

(car ''abracadabra)
gosh> quote

''abracadabra(quote (quote abracadabra)) に等しい。
(car (quote (quote abracadabra)))(car '(quote abracadabra)) に等しい。
したがって (car ''abracadabra)quote と印字される。

計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
«
»