Функция Scheme для возврата функции, которая вычисляет нулевое значение - PullRequest
0 голосов
/ 18 ноября 2018

Я сейчас пишу свои первые программы на 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 будет неправильным.

...