我是Haskell的新手,我正试图在Haskell上使用foldl使用MacLaurin系列实现正弦近似。我已经生成了这个列表,现在我试图使用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)