SICP 問題1.16
反復的べき上プロセスを生成する手続き
(define (fast-expt b n) (fast-expt-iter b n 1)) (define (fast-expt-iter b count product) (cond ((= count 0) product) ((even? count) (fast-expt-iter (square b) (/ count 2) product)) (else (fast-expt-iter b (- count 1) (* b product)))))