問題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
つづく。。。(かも)
moremagic
2013-05-19