Code Review

Compare your solutions

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

(define (solution b n)
  (define (iter-expt b n a)
    (if (= n 0)
        a
        (iter-expt b (- n 1) (* a (square b)))))
  (if (even? n)
      (iter-expt b (/ n 2) 1)
      (iter-expt b (/ (- n 1) 2) b)))
#| END |#
    #| BEGIN (Write your solution here) |#
(define (square x) (* x x))

(define (solution b n)
  (define (iter-expt b n a)
    (cond ((= n 0) a)
          ((even? n) (iter-expt (square b) (/ n 2) a))
          (else (iter-expt b (- n 1) (* a b)))))
  (iter-expt b n 1))
#| END |#
    #| BEGIN (Write your solution here) |#
(define (square x) (* x x))

(define (solution b n)
  (define (iter-expt b n a)
    (if (= n 0)
        a
        (iter-expt b (- n 1) (* a (square b)))))
  (if (even? n)
      (iter-expt b (/ n 2) 1)
      (iter-expt b (/ (- n 1) 2) b)))
#| END |#
    #| BEGIN (Write your solution here) |#
(define (square x) (* x x))

(define (solution b n)
  (define (iter-expt b n a)
    (cond ((= n 0) a)
          ((even? n) (iter-expt (square b) (/ n 2) a))
          (else (iter-expt b (- n 1) (* a b)))))
  (iter-expt b n 1))
#| END |#