SICP 平方根と立方根
(define sqrt-iter (lambda (guess x guess-prev) (if (good-enough? guess guess-prev) guess (sqrt-iter (improve guess x) x guess)))) (define improve (lambda (guess x) (average guess (/ x guess)))) (define average (lambda (x y) (/ (+ x y) 2))) (define good-enough? (lambda (guess guess-prev) (< (abs (/ (- guess guess-prev) guess)) 0.001))) (define sqrt (lambda (x) (sqrt-iter 1.0 x x)))
立方根
(define cubic-iter (lambda (guess x guess-prev) (if (good-enough? guess guess-prev) guess (sqrt-iter (improve guess x) x guess)))) (define improve (lambda (guess x) (average guess (/ (+ (/ x (* guess guess)) (* 2 guess)) 3)))) (define average (lambda (x y) (/ (+ x y) 2))) (define good-enough? (lambda (guess guess-prev) (< (abs (/ (- guess guess-prev) guess)) 0.001))) (define cubic (lambda (x) (cubic-iter 1.0 x x)))