summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chapter116.rkt2
-rw-r--r--chapter117.rkt13
2 files changed, 14 insertions, 1 deletions
diff --git a/chapter116.rkt b/chapter116.rkt
index 61b8e6f..e4f1e7d 100644
--- a/chapter116.rkt
+++ b/chapter116.rkt
@@ -13,4 +13,4 @@
(define (fast-expt b n)
(fie 1 b n))
-(fast-expt 3 4)
+(fast-expt 5 5)
diff --git a/chapter117.rkt b/chapter117.rkt
new file mode 100644
index 0000000..b4a8e27
--- /dev/null
+++ b/chapter117.rkt
@@ -0,0 +1,13 @@
+(define (halve a) (/ a 2))
+(define (double a) (* a 2))
+
+(define (miter s a b)
+ (cond ((= b 0) s)
+ ((even? b) (miter s (double a) (halve b)))
+ (else (miter (+ s a) (double a) (halve (- b 1))))))
+
+
+(define (m a b)
+ (miter 0 a b))
+
+(m 3 5)