我试图为指数函数实现泰勒序列,并且我得到了大量的错误,我不能完全理解,因为所有代码段本身都有效...有人可以解释错误和解决方法请:
top x = map (x^) [0..]
bottom = foldr (*) 1 [1..]
whole x = zipWith (/) (top x) bottom
提前致谢!
答案 0 :(得分:6)
答案 1 :(得分:1)
您可以在GHCi中单独测试每个功能,看看它是否与您设计的相同。
例如,您对bottom
Prelude> bottom = foldr (*) 1 [1..]
Prelude> :t bottom
bottom :: (Num b, Enum b) => b
没有列出清单。这显然不是zipWith
Prelude> :t zipWith
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
与正确的
相比Prelude> bottom = scanl (*) 1 [1..]
Prelude> :t bottom
bottom :: (Num b, Enum b) => [b]
列出了一个清单。