Code Review

Compare your solutions

    #| BEGIN (Write your solution here) |#
(define (double x)
  (* x 2))

(define (halve x)
  (/ x 2))

(define (even? n)
  (= (remainder n 2) 0))

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