Код Ревью
Сравни свои решения
#| BEGIN (Введите свое решение) |#
(define (even? n)
(= (remainder n 2) 0))
(define (square n)
(* n n))
(define (fast-expt-rec b n)
(cond ((= n 0) 1)
((even? n) (square (fast-expt-rec b (/ n 2))))
(else (* b (fast-expt-rec b (- n 1))))))
(define (fast-expt-iter b n invariant)
(cond ((= n 0) invariant)
((even? n) (fast-expt-iter (square b) (/ n 2) invariant))
((fast-expt-iter b (- n 1) (* b invariant)))))
(define (solution b n)
(fast-expt-iter b n 1))
#| END |#
#| BEGIN (Введите свое решение) |#
(define (solution b n)
(define (even? n)
(= (remainder n 2) 0))
(define (square n)
(* n n))
(define (fast-expt-rec b n)
(cond ((= n 0) 1)
((even? n) (square (fast-expt-rec b (/ n 2))))
(else (* b (fast-expt-rec b (- n 1))))))
(define (fast-expt-iter b n invariant)
(cond ((= n 0) invariant)
((even? n) (fast-expt-iter (square b) (/ n 2) invariant))
((fast-expt-iter b (- n 1) (* b invariant)))))
(fast-expt-iter b n 1))
#| END |#
#| BEGIN (Введите свое решение) |#
(define (even? n)
(= (remainder n 2) 0))
(define (square n)
(* n n))
(define (fast-expt-rec b n)
(cond ((= n 0) 1)
((even? n) (square (fast-expt-rec b (/ n 2))))
(else (* b (fast-expt-rec b (- n 1))))))
(define (fast-expt-iter b n invariant)
(cond ((= n 0) invariant)
((even? n) (fast-expt-iter (square b) (/ n 2) invariant))
((fast-expt-iter b (- n 1) (* b invariant)))))
(define (solution b n)
(fast-expt-iter b n 1))
#| END |#
#| BEGIN (Введите свое решение) |#
(define (solution b n)
(define (even? n)
(= (remainder n 2) 0))
(define (square n)
(* n n))
(define (fast-expt-rec b n)
(cond ((= n 0) 1)
((even? n) (square (fast-expt-rec b (/ n 2))))
(else (* b (fast-expt-rec b (- n 1))))))
(define (fast-expt-iter b n invariant)
(cond ((= n 0) invariant)
((even? n) (fast-expt-iter (square b) (/ n 2) invariant))
((fast-expt-iter b (- n 1) (* b invariant)))))
(fast-expt-iter b n 1))
#| END |#