Scheme: Exponents

Posted October 14, 2006 by William_Wilson in Computer programming

This Scheme code example shows how to implement exponents by raising a given base by a given exponent through succesive squaring.


Given the base b and the exponent n, the code determines if the exponent is zero, in which case it returns one. Otherwise, it determines if n is even and can be divided by two or if an odd adaptation needs to be performed first.

(define (exp b n)
(cond ((= n 0) 1) ;0 base case
((= n 1) b) ;1 base case
((even? n) (exp (square b) (/ n 2))) ;even case using (b^2)^n/2
(else (* b (exp b (+ n -1))))) ;odd case using b*b^n-1
)

Questions/Comments: [email protected]
-William. ยง (marvin_gohan)

The Conversation

Follow the reactions below and share your own thoughts.