不変量を使った累乗の計算
SICPの問題1.16。これは思いつかなかった。
; 1.16 (define (fast-expt b n) (expt-iter b n 1)) (define (expt-iter b n a) (cond [(= n 0) a] [(even? n) (expt-iter (* b b) (/ n 2) a)] [else (expt-iter b (- n 1) (* a b))]))
SICPの問題1.16。これは思いつかなかった。
; 1.16 (define (fast-expt b n) (expt-iter b n 1)) (define (expt-iter b n a) (cond [(= n 0) a] [(even? n) (expt-iter (* b b) (/ n 2) a)] [else (expt-iter b (- n 1) (* a b))]))