Code Review
Compare your solutions
#| BEGIN (Write your solution here) |#
(define (square n)
(* n n))
(define (even? n)
(= (remainder n 2) 0))
(define (solution b n)
(define (fast-expt-step b n a)
(display "step: ") (display b) (display ", ") (display n) (display ", ") (display a) (newline)
(cond ((= n 0) a)
((even? n) (fast-expt-step (square b) (/ n 2) a))
(else (fast-expt-step b (- n 1) (* a b)))))
(fast-expt-step b n 1))
#| END |#