; ======================================================================
;
; 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
;; >