#lang racket
(define (say-hello s)
  (string-append "Hello " s "!"))

(define LIMIT 0.0000000001)
(define DELTA 0.0000001)

(define (çöz-adım hayatlar iyi-mi? iyileştir tahmin)
  (cond
    ((< hayatlar 0) +nan.0)
    ((iyi-mi? tahmin) tahmin)
    (else (çöz-adım (- hayatlar 1) iyi-mi? iyileştir (iyileştir tahmin)))))

(define (türev f)
  (λ (x) (/ (- (f (+ x DELTA)) (f x)) DELTA)))

(define (iyi-mi? f)
  (λ (x) (< (magnitude (f x)) LIMIT)))

(define (iyileştir f)
  (λ (x) (- x (/ (f x) ((türev f) x)))))

(define (çöz f tahmin)
  (çöz-adım 50 (iyi-mi? f) (iyileştir f) tahmin))