問題2.5

なんか、現実逃避のためにSICPをやってる気がしてきた。これが終わったら、仕事に復帰します。

; Constructor
(define (cons-exp a b)
  (* (expt 2 a) (expt 3 b)))

; Selector (car)
(define (car-exp z)
  (if (not (= (remainder z 2) 0))
      0
      (+ 1 (car-exp (/ z 2)))))

; Selector (cdr)
(define (cdr-exp z)
  (if (not (= (remainder z 3) 0))
      0
      (+ 1 (cdr-exp (/ z 3)))))

あ、終わってしまった。次のChurch数はどうしよう。やっぱ、帰ってからにしよう。