2015/10/06
SICP 問題1.18
対数的ステップ数の,二つの整数の乗算の反復的プロセスを生成する手続き
(define (fast-* a b)
(fast-*-iter a b 0))
(define (fast-*-iter a b sum)
(cond ((= b 0) sum)
((even? b) (fast-*-iter (double a) (halve b) sum))
(else (fast-*-iter a (- b 1) (+ a sum)))))