计算 e^x 的 Haskell 函数

Ign*_*ios 5 recursion haskell taylor-series

实现一个函数,计算e^x的值,x是函数的一个参数,一个整数。为此,请使用泰勒级数展开来计算 e 的效力。除了指数 x 之外,该函数还将接收作为参数的级数项数,它将作为 n 的最大值运行。为了解决这个函数,必须使用递归。

我做的:

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

consigna3::Int->Int->Float
consigna3 _ 0 = 1
consigna3 x n = (fromIntegral(x^n) / fromIntegral(factorial n)) + consigna3 x (n-1)
Run Code Online (Sandbox Code Playgroud)

但是有些结果是错误的,这是我的预期:

Ejemplo 1: Main> funcion3 1 1
           2.0
Ejemplo 2: Main> funcion3 1 10
           2.718282
Ejemplo 3: Main> funcion3 2 10
           7.388997
Ejemplo 4: Main> funcion3 10 20
           21991.48
Ejemplo 5: Main> funcion3 10 30
           22026.46
Ejemplo 6: Main> funcion3 0 30
           1.0
Run Code Online (Sandbox Code Playgroud)

结果 (10 20) 和 (10 30) 与我所做的函数返回的不匹配。我做错了什么?感谢和抱歉我的英语。