Haskell:类型不匹配

use*_*742 3 haskell signature

我只是试着写一个简单的函数来计算输入Ints的平均值:

avg :: Int -> Int -> Int -> Float
avg x y z = (x+y+z)/3
Run Code Online (Sandbox Code Playgroud)

当我交换签名时

avg :: Float -> Float -> Float -> Float
Run Code Online (Sandbox Code Playgroud)

它工作正常,但有了上面的一个我得到以下错误信息:

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

我有哪些可能使用第一个签名,它接受Ints(仅限)?

dav*_*420 10

使用fromIntegral该转换Ints到FloatS:

avg :: Int -> Int -> Int -> Float
avg x y z = (fromIntegral x + fromIntegral y + fromIntegral z) / 3
Run Code Online (Sandbox Code Playgroud)