exercise-1.07-different-good-enough-function.rkt 775 B

1234567891011121314151617181920212223242526272829303132
  1. #lang racket
  2. (define (square x) (* x x))
  3. (define (avg a b) (/ (+ a b) 2))
  4. (define (improve-guess x guess)
  5. (avg (/ x guess) guess))
  6. (define (epsilon-square-root x guess)
  7. (abs (- (square guess) x)))
  8. (define (precision-sufficient x guess precision)
  9. (< (epsilon-square-root x guess) precision))
  10. (define (precision-sufficient-two x guess precision)
  11. (<
  12. (abs (- guess (improve-guess x guess)))
  13. (abs (* guess precision))))
  14. (define (sqrt-iter guess x precision)
  15. (if
  16. (precision-sufficient x guess precision)
  17. guess
  18. (sqrt-iter (improve-guess x guess) x precision)))
  19. (define (sqrt-iter-two guess x precision)
  20. (if
  21. (precision-sufficient-two x guess precision)
  22. guess
  23. (sqrt-iter-two (improve-guess x guess) x precision)))
  24. (sqrt-iter 2.6 7 0.000001)