这是我的程序代码:
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。请帮助!
答案 0 :(得分:4)
您需要将Int
n
转换为Double
:
zetaRange (x,y) = [ 0.01 * funct (fromIntegral n) | n <- [x..y] ]