Код Ревью

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

    #| BEGIN (Введите свое решение) |#
(define (even? n)
  (= (remainder n 2) 0))

(define (double a)
  (* a 2))

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

(define (fast-mul a b)
  (cond ((or (= a 0)
             (= b 0))
         0)
        ((= b 2) (double a))
        ((even? b) (fast-mul (double a) (halve b)))
        (else (+ a 
                 (fast-mul (double a) (halve (- b 1)))))))

#| END |#