問題1.18 をやってみる
1-16 を書き直すだけでした。っと。
(define (double n) (+ n n)) (define (halve n) (/ n 2)) (define (fast-expt-mul b n a) (cond ((= n 0) a) ((even? n) (fast-expt-mul (double b) (halve n) a)) (else (fast-expt-mul b (- n 1) (+ b a))))) (fast-expt-mul 5 4 0)