2015/10/04
SICP 問題1.10
(define (A x y)
(cond ((= y 0) 0)
((= x 0) (* 2 y))
((= y 1) 2)
(else (A (- x 1)
(A x (- y 1))))))
(A 1 10)
;; gosh> 1024
(A 2 4)
;; gosh> 65536
(A 3 3)
;; gosh> 65536
(define (f n) (A 0 n))
;; => f(n) = 2n
(define (g n) (A 1 n))
;; => g(n) = 2^n
(define (h n) (A 2 n))
;; => h(1) = 2
;; => h(2) = 2^2
;; => h(3) = 2^(2^2)
;; => h(4) = 2^(2^(2^2))
;; 2の2乗をn回繰り返したもの?