Haskell中的幂级数

Haskell中的幂级数,haskell,power-series,Haskell,Power Series,我想用Haskell来写电力系列 e^x = 1 + x + x^2/2! + x^3/3! + ... 这样它就会熄灭 [1,1,1/2,1/6,...] 到目前为止,我得到了: factorial 0 = 1 factorial n = n * factorial (n - 1) powerSrs x = 1 : powerSrsFunc[1..] where powerSrsFunc ( p: xs ) = p : powerSrsFunc

我想用Haskell来写电力系列

e^x = 1 + x + x^2/2! + x^3/3! + ...
这样它就会熄灭

[1,1,1/2,1/6,...]
到目前为止,我得到了:

factorial 0 = 1 
factorial n = n * factorial (n - 1)

powerSrs x = 1 : powerSrsFunc[1..] where
        powerSrsFunc ( p: xs ) = 
            p : powerSrsFunc[y | y <-xs, ( (x^y) / (factorial y) )]
阶乘0=1
阶乘n=n*阶乘(n-1)
powerSrs x=1:powerSrsFunc[1..]其中
powerrsfunc(p:xs)=

p:powerrsfunc[y | y在列表理解语法中,您有三个主要部分

[y | y <-xs, ( (x^y) / (factorial y) )]

[y | y如果您对Haskell中的power series有兴趣,您应该查看Douglas McIlroy(UNIX名人)的一篇优秀论文:

在这里,他定义了幂级数上的代数,允许您通过键入以下内容来定义幂运算:

expx = 1 + (integral expx)

还有其他一些很酷的东西,比如生成函数。

我似乎无法正确运行分数位。似乎Data.Ratio包中只有%运算符,它会将比率显示为2%3,而不是2/3。啊,我想你可以将其转换为字符串,并将%替换为/。我的猜测是,它使用%以便可以e再次正确阅读。使用/将与使用/的标准用法相冲突。哦,孩子,现在这将打开一系列关于Int->String对话的全新问题。哈哈。这里有一个pdf版本:
[(x^y) / (factorial y) | y <-xs]
expx = 1 + (integral expx)