SICP問題1.16
(define (my-expt b n) (define (my-iter-expt b n a) (if (= n 0) a (if (even? n) (my-iter-expt (square b) (/ n 2) a) (my-iter-expt b (- n 1) (* b a)))) ) (cond ((= n 0) 1) ((= n 1) b) (else (my-iter-expt b n 1))) )
(define (my-expt b n) (define (my-iter-expt b n a) (if (= n 0) a (if (even? n) (my-iter-expt (square b) (/ n 2) a) (my-iter-expt b (- n 1) (* b a)))) ) (cond ((= n 0) 1) ((= n 1) b) (else (my-iter-expt b n 1))) )