; ======================================================================
;
; Structure and Interpretation of Computer Programs
; (trial answer to excercises)
;
; 計算機程序的構造和解釋(習題試解)
;
; created: code17 02/24/05
; modifIEd:
; (保持內容完整不變前提下,可以任意轉載)
; ======================================================================
;; SICP No.1.8
;; 只需要替換No.1.7中的improve函數算法即可
(define (improve guess x)
(/ (+ (/ x
(* guess guess))
(* 2 guess))
3))
(define (good-enough? oldguess guess)
(< (abs (/ (- guess oldguess)
guess))
0.001))
(define (cube-iter oldguess guess x)
(if (good-enough? oldguess guess)
guess
(cube-iter guess
(improve guess x)
x)))
(define (cube-root x)
(cube-iter 0.0 1.0 x))
;; Test-it:
;; Welcome to MzScheme version 209, Copyright (c) 2004 PLT Scheme, Inc.
;; > (cube-root 0)
;; 4.9406564584125e-324
;; > (cube-root 125)
;; 5.000000000287929
;; > (cube-root 1000)
;; 10.000000145265767
;; > (cube-root -27)
;; -3.000000005383821
;; >