话说《SICP》这本书买来快一年了,都没看,反倒是被师兄借走津津有味地看了几个月。。。今日数据结构要结课了,不想平庸地结束这门我几乎没去听过的课,于是又去leetcode刷了几道太热额标签的题目,结果被递归虐得头大,于是乎又想起了这本书。想想当初正是听说看了这本书的前两章就可以把递归用得炉火纯青,我才热血澎湃地去买了这本书,如今重新拾起,希望能坚持下去。好了,闲话几许,聊以自励,现在进入正题。
今天学习的是用牛顿法求平方根,跟着敲了书上的代码,完全OK,在这里记录一下:
(define (sqrt-iter guess x)
(if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
(define (improve guess x)
(average guess (/ x guess)))
(define (good-enough? guess x)
(< (abs (- (square guess) x)) 0.001))
(define (good-enough? guess x)
(< (abs (- (square guess) x)) 0.001))
(define (sqrt x)
(sqrt-iter 1.0 x))