Код Ревью

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

    #| 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 |#