Haskell无法将预期类型'Double'与实际类型'Int'匹配

时间:2016-11-23 10:10:38

标签: haskell

这是我的程序代码:

funct :: Double -> Double
funct x = 3/(x^2+1)

zetaRange :: (Int, Int) -> [Double]
zetaRange (x,y) = [ 0.01 * funct n | n <- [x..y] ]

和错误,我得到了:

  

无法将预期类型'Double'与实际类型'Int'匹配

     

在'funct'的第一个参数中,即'n'

     

在'(*)'的第二个参数中,即'funct n'

我对haskell真的是新手,所以试图解决这个错误并不成功。 funct返回Double,所以我无法理解为什么错误说它的实际类型是Int。请帮助!

1 个答案:

答案 0 :(得分:4)

您需要将Int n转换为Double

zetaRange (x,y) = [ 0.01 * funct (fromIntegral n) | n <- [x..y] ]