我是 Haskell 的新手,我正在尝试使用 MacLaurin 的系列在 Haskell 上使用 foldl 来实现正弦逼近。我已经生成了列表,现在我正在尝试使用 fold 获得总和。
这是我的代码。我知道我在 sin 函数上做错了,但我不知道该怎么做。我也必须通过 x。如果 sin 接收 x 作为输入,list 将使用相同的 x 值。
factorial n = product [1..n]
list x = [-1**n * ((x**(2*n+1))/factorial(2*n+1)) | n <- [0..29] ]
sin x = foldl (+) 0 list x
已解决:正确的解决方案:
factorial n = product [1..n]
list x = [(-1)**n * ((x**(2*n+1))/factorial(2*n+1)) | n <- [0..29] ]
sine x = foldl (+) 0 (list x)