From 8d27dd2d1057ae33bd44b1b19d9dd79b5b4d9d2e Mon Sep 17 00:00:00 2001 From: NaiJi Date: Sun, 19 Jul 2020 21:40:50 +0300 Subject: [PATCH] Add 1.8 --- sicp-ex-1.8.rkt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 sicp-ex-1.8.rkt diff --git a/sicp-ex-1.8.rkt b/sicp-ex-1.8.rkt new file mode 100644 index 0000000..2a8f46d --- /dev/null +++ b/sicp-ex-1.8.rkt @@ -0,0 +1,23 @@ +(define (square x) (* x x)) + +(define (cubic-iter guess guess-prev x) + (if (good-enough? guess guess-prev) + guess + (cubic-iter (improve guess x) guess + x))) + +(define (improve guess x) + (average (* 2 guess) (/ x (square guess)))) + +(define (average x y) + (/ (+ x y) 3)) + +(define (good-enough? guess guess-prev) + (< (abs (- guess guess-prev)) 0.001)) + +(define (cubic-root x) + (if (= x 0) x (cubic-iter 1.0 999 x))) + +(cubic-root 1892379832.0) +(cubic-root 8.0) +(cubic-root 27.0)