【发布时间】:2014-10-19 12:01:01
【问题描述】:
我收到错误“No instance for (Fractional Int) from a use of '/'”,来自我尝试创建的函数的本地定义内部有多少(三个)给定整数高于所有给定整数的平均值。所以我在函数内部创建了一个局部定义来计算平均值,这样我就可以将它用于警卫检查。我在单独的定义(在另一个文件中)中使用了相同的代码来计算平均值并且它有效。我尝试将“fromIntegral”函数调用放在不同的地方,但它不起作用,我哪里出错了?
代码如下:
howManyAboveAverage :: Int -> Int -> Int -> Int
howManyAboveAverage a b c
| a > average && b > average = 2
| a > average && c > average = 2
| b > average && c > average = 2
| a > average = 1
| b > average = 1
| c > average = 1
| otherwise = 0
where
average = fromIntegral (a + b + c) / 3
错误在最后一行被标记出来。
谢谢。
【问题讨论】:
标签: function haskell functional-programming