diff --git a/sicp-ex-1.16 b/sicp-ex-1.16 new file mode 100644 index 0000000..afdf1a9 --- /dev/null +++ b/sicp-ex-1.16 @@ -0,0 +1,19 @@ +; UNFINISHED +(define (sqr n) + (* n n)) + +(define (fast-ext-iter number power product) + (cond ((= power 0) product) + ((even? power) (fast-ext-iter number + (/ power 2) + (if (= product 1) + (sqr number) + (sqr product)))) + (else (fast-ext-iter number + (- power 1) + (* power product))))) + +(define (fast-ext number power) + (fast-ext-iter number power 1)) + +(fast-ext 2 8) \ No newline at end of file