Код Ревью

Сравни свои решения

    #| BEGIN (Введите свое решение) |#
(define (double a)
  (* a 2))

(define (halve a)
  (/ a 2))

(define (mul-iter b n)
  (define (iter a b n)
    (cond ((or (= b 0) (= n 0)) 0)
          ((= b 1) (+ a n))
          ((even? b) (iter a (halve b) (double n)))
          (else (iter (+ a n) (halve (- b 1)) (double n)))))
  (iter 0 b n))
#| END |#