(define power (lambda (b e) (if (= e 0) 1 (if (even? e) (let ((p (power b (/ e 2)))) (* p p)) (* b (power b (- e 1)))))))and the logarithmic iterative version:
(define power (lambda (b e) (define power-product (lambda (a b e) (if (= e 0) a (if (even? e) (power-product a (* b b) (/ e 2)) (power-product (* a b) b (- e 1)))))) (power-product 1 b e)))