and*_*ndy 3 haskell functional-programming
我有这个功能
sameElts :: Eq a => [a] -> Bool
Run Code Online (Sandbox Code Playgroud)
如果给定一个列表,当列表的所有元素相等时返回True,否则返回False.
例如:
sameElts [1,2] = False
sameElts [2,2] = True
sameElts [2] = True
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释Eq a =>对类型的代码片段的需求sameElts吗?我假设它强制类型为数字列表,以便使用equals运算符.
所述Eq a =>代码段只是需要的类型a是在类型类 Eq,这基本上意味着,必须有用于该类型的相等测试.这允许您使用==和/=运算符.
例如,数字Eq通过标准库(Prelude)实现,但也有其他类型.您还可以创建自定义数据类型并自己定义相等性检查.这sameElts非常通用,因为它适用于任何类型Eq.
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |