; deriv-at-point : (num -> num) num num -> num (define (deriv-at-point f x eps) (local ((define delta-x (* 2 eps)) (define delta-y (- (f (+ x eps)) (f (- x eps))))) (/ delta-y delta-x))) ; deriv : (num -> num) -> (num -> num) (define (deriv f) (local ((define eps .001) ; an arbitrary small value (define (f-deriv x) (local ((define delta-x (* 2 eps)) (define delta-y (- (f (+ x eps)) (f (- x eps))))) (/ delta-y delta-x)))) f-deriv))