From 39073af470776acb0e36a000a27673306dc20603 Mon Sep 17 00:00:00 2001
From: Ramakrishnan Muthukrishnan <vu3rdd@gmail.com>
Date: Fri, 9 Apr 2010 15:34:48 +0530
Subject: [PATCH] Added solution to 1.16.

---
 chapter1/ch1_2.clj | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/chapter1/ch1_2.clj b/chapter1/ch1_2.clj
index 89ccec5..d6bb552 100644
--- a/chapter1/ch1_2.clj
+++ b/chapter1/ch1_2.clj
@@ -478,3 +478,16 @@ TRACE t2494: => -0.39980345741334
 
 (defn even? [x]
   (= (rem x 2) 0))
+
+(defn square [x]
+  (* x x))
+
+;; exercise 1.16:
+(defn expt [b n]
+  (expt-iter b n 1))
+
+(defn expt-iter [b n a]
+  (cond (= n 0) a
+	(even? n) (expt-iter (square b) (/ n 2) a)
+	:else (expt-iter b (- n 1) (* a b))))
+
-- 
2.45.2