小编Aez*_*Aez的帖子

对类型类约束感到困惑

我是Haskell的初学者,我目前很困惑,我确信这与我使用的约束有关我一直都会遇到错误

代码

averageThreeNumbers:: Floating a=> (a, a, a) -> a
averageThreeNumbers (x,y,z) = ((x+y+z)/3)

howManyBelowAverage:: Floating a=> (a, a, a) -> [a]
howManyBelowAverage (b,c,d) = [x|x <- [b,c,d], x > averageThreeNumbers(b,c,d)]
Run Code Online (Sandbox Code Playgroud)

错误

Could not deduce (Ord a) arising from a use of `>'
from the context: Floating a
bound by the type signature for:
howManyBelowAverage :: Floating a=> (a, a, a) -> [a]
Possible fix: add (Ord a) to the context of the type signature
Run Code Online (Sandbox Code Playgroud)

虽然当我使用相同的列表但在控制台中使用原始浮动时,它可以正常工作.我在这里错过了一些大事吗?任何帮助表示赞赏.

编译好:

[x|x <- [1.2, …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass

2
推荐指数
1
解决办法
130
查看次数

标签 统计

haskell ×1

typeclass ×1