問題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);1024
(A 2 4);65536
(A 3 3);65536

(define (f n) (A 0 n))
;nを2倍する

(define (g n) (A 1 n))
; 2 の乗数を求める
;ex (g 2)
;(A (- 1 1) (A 1 (- 2 1)))
;(A 0 (A 1 1))
;(A 0 2)
;(* 2 2)
;4
;
;ex (g 3)
;(A (- 1 1) (A 1 (- 3 1)))
;(A 0 (A 1 2))
;(A 0 (A (- 1 1) (A 1 (- 2 1)))
;(A 0 (A 0 (A 1 1)))
;(A 0 (A 0 2))
;(A 0 (* 2 2))
;(A 0 4)
;(* 4 2)
;8

(define (h n) (A 2 n))
;ex (h 2)
;(A 2 2)
;(A (- 2 1) (A 2 (- 2 1)))
;(A 1 (A 2 1))
;(A 1 2)
;【省略】
;4
;
;ex (h 3)
;(A 2 3)
;(A (- 2 1) (A 2 (- 3 1)))
;(A 1 (A 2 2))
;(A 1 (A (- 2 1) (A 2 (- 2 1))))
;(A 1 (A 1 (A 2 1)))
;(A 1 (A 1 2))
;(A 1 4)
;【省略】
;16

(define (h n) (A 2 n)) がよくわかんないな。。。

↓ ここを参考にもう少し考えてみようっと。。。
http://ongaeshi.hatenablog.com/entry/20080219/1203351532


つづく。。。(かも)