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)

  

posted @ 2017-11-24 11:39  R4mble  阅读(127)  评论(0编辑  收藏  举报