SICP习题 1.18 (对求乘积进行优化)
(define (double a) (+ a a)) (define (halve a) (/ a 2)) (define (mult a b) (mult-iter a b 0)) (define (mult-iter a b product) (cond ((= b 0) product) ((even? b) (mult-iter (double a) (halve b) product)) ((odd? b) (mult-iter a (- b 1) (+ a product))))) (mult 123 124)