Code Review

Compare your solutions

    #| BEGIN (Введите свое решение) |#
(define (fast-mul a b)
  (define (double n)
    (* n 2))
  (define (halve n)
    (/ n 2))

  (cond ((or (= a 0) (= b 0)) 0)
        ((even? b) (fast-mul (double a) (halve b)))
        (else (+ a (fast-mul a (- b 1))))))
#| END |#
    #| BEGIN (Введите свое решение) |#
(define (fast-mul a b)
  (define (double n)
    (* n 2))
  (define (halve n)
    (/ n 2))

  (cond ((or (= a 0) (= b 0)) 0)
        ((even? b) (double (fast-mul a (halve b))))
        (else (+ a (fast-mul a (- b 1))))))
#| END |#
    #| BEGIN (Введите свое решение) |#
(define (fast-mul a b)
  (define (double n)
    (* n 2))
  (define (halve n)
    (/ n 2))

  (cond ((or (= a 0) (= b 0)) 0)
        ((even? b) (fast-mul (double a) (halve b)))
        (else (+ a (fast-mul a (- b 1))))))
#| END |#
    #| BEGIN (Введите свое решение) |#
(define (fast-mul a b)
  (define (double n)
    (* n 2))
  (define (halve n)
    (/ n 2))

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