]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ex1_16.clj
solutions to 4.35, 4.36 and 4.37
[sicp.git] / src / sicp / ex1_16.clj
1 (ns sicp.ex1_16
2   (:use [sicp utils]
3         [clojure.contrib trace test-is]))
4
5 ;; exercise 1.16:
6 (defn myexpt [b n]
7   (expt-iter b n 1))
8
9 (defn expt-iter [b n a]
10   (cond (= n 0) a
11         (even? n) (expt-iter (square b) (/ n 2) a)
12         :else (expt-iter b (- n 1) (* a b))))