В данный момент я пробую Haskell и изо всех сил пытаюсь переписать циклы с точки зрения рекурсии.
Я пытаюсь написать базовый интегратор, который берет некоторую функцию f (x) и интегрирует ее в диапазоне [a, b] с помощью метода средней точки. Интегрирующая функция принимает три параметра N, a и b, где N — количество прямоугольников, используемых для аппроксимации интеграла.
Когда я пытаюсь скомпилировать это с помощью GHCI, я получаю много абстрактных сообщений об ошибках, и я действительно не знаю, с чего начать. Много «вне области действия» и несколько «несколько объявлений Main.a [или b]».
Спасибо
MPInt 1 a b = DELTA 1 -- Base case
MPInt N a b = (MPInt (N-1) a b) + DELTA
where
dX = (b - a) / N
DELTA = dX * f (a + dX * (N+0.5))
f :: (Num a) => a -> a
f x = x^2