Код Ревью

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

    #| BEGIN (Введите свое решение) |#
(define (square x) 
  (* x x))
(define (even? n)
  (= (remainder n 2) 0))
(define (fast-expt b n)
  (cond ((= n 0) 1)
        ((even? n) (square (fast-expt b (/ n 2))))
        (else (* b (fast-expt b (- n 1))))))
(define (solution b n)
  (iter-pow b n 1))
(define (iter-pow b n a)
  (cond ((= n 0) a)
        ((even? n) (iter-pow b (/ n 2) (iter-pow b (/ n 2) a)))
        (else (iter-pow b (- n 1) (* b a)))))
; тяжко вспоминать математику конечно
#| END |#