计划函数,用于返回计算零值的函数

时间:2018-11-18 17:31:55

标签: scheme lisp higher-order-functions

我目前正在编写我的第一个Scheme程序,现在正在尝试编写以下功能:

该函数应将另一个函数用作参数,并应返回一个带有一个参数的函数,该函数为给定x计算给定函数的零值。

正在尝试表达的算法是:Xn+1 = Xn - f(Xn) / f'(Xn)该函数应迭代到X - Xn < 0.0001。 我已经写了计算f'(x)diff)的函数。

我当前的代码如下:

(define (make-nf f)
  (lambda (x)
    (let ((fn (diff f 0.1))
    ((innerfunc x xn)
      (if (< (- x xn) 0.0001)
          xn
          (innerfunc (- x (/ (f x) (fn x))))
          ))))
    (innerfunc 0 x)))

我的实际问题是迭代部分。我不知道如何使返回的函数迭代或调用自身或内部函数。正如您在上面看到的,我试图定义一个命名内部函数,直到达到定义的精度为止,该内部函数都会被调用。我还知道,以0 x开始迭代是错误的。

0 个答案:

没有答案