Haskell将双重划分为Int

时间:2016-04-01 08:28:27

标签: haskell

我有以下代码,问题是我尝试将Double除以Int

factorial :: Int -> Int
factorial 0 = 1
factorial e = e * (factorial e-1)

sumX :: Double -> Int -> Double
sumX x 0 = (x^0) / (factorial 0)

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:6)

一个问题是您的因子函数的括号不正确。你应该写

factorial e = e * factorial (e - 1)

其次,您可以使用fromIntegral函数将任何整数类型(Integral类的实例)转换为任何数字类型(Num类的实例)

sumX x 0 = x ^ 0 / fromIntegral (factorial 0)