Scheme 格式导数函数

Scheme 格式导数函数,scheme,derivative,Scheme,Derivative,我今天在scheme中写了一个简单的导数函数。我被要求返回一个函数,使得g(x)=(f(x+h)-f(x))/h。这是否足以返回一个函数,还是只返回一个值 (define (der f h) (lambda (x) (/ (- (f(+ x h)) (f x)) h))) 是的,问题中的代码返回一个函数(这就是lambda的作用)。如果它返回一个值,它将丢失带有(lambda(x)的行和相应的右括号 另外请注意,尽管程序是正确的,但问题中所述的公式是不正确的,它应该是: g(x)

我今天在scheme中写了一个简单的导数函数。我被要求返回一个函数,使得g(x)=(f(x+h)-f(x))/h。这是否足以返回一个函数,还是只返回一个值

(define (der f h)
 (lambda (x)
 (/ (- (f(+ x h)) (f x)) h)))    

是的,问题中的代码返回一个函数(这就是
lambda
的作用)。如果它返回一个值,它将丢失带有
(lambda(x)
的行和相应的右括号

另外请注意,尽管程序是正确的,但问题中所述的公式是不正确的,它应该是:

g(x) = (f(x+h) - f(x))/h ; notice that x is the parameter to the second call to f
作为旁注,使用定义的导数函数的正确方法是:

(define der-sqr (der square 1e-10)) ; create the derivative *function*
(der-sqr 10)                        ; apply the function
=> 20.000072709080996