如何像这样写泰勒级数递归数据:

fib = 0 : scanl (+) 1 fib

例如,我要提示类似以下内容:
fac n = product[1..n]
sin' x = x : x^3/fac(3) : x^5/fac(5) : ...
sum $ take 10 (sin' (pi/6))

并得到正弦泰勒级数的10个第一元素的总和。

最佳答案

那还不是泰勒的罪恶系列!但这是一个线索...

products = scanl (*) 1 [1..]
powers x = map (x^) [0..]
exp' x = zipWith (/) (powers x) products

*Main> sum (take 10 (exp' 1))
2.7182815255731922

09-06 14:18