我现在正在尝试 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