【发布时间】:2012-04-24 13:42:18
【问题描述】:
Eq a => [a] -> [(Int,a)]
我不知道 Eq 是什么意思,所以我不知道整个定义是什么意思?
【问题讨论】:
Eq a => [a] -> [(Int,a)]
我不知道 Eq 是什么意思,所以我不知道整个定义是什么意思?
【问题讨论】:
这是关于定义[a] -> [(Int,a)] 中使用的类型a 的约束:它说它必须为Eq 类型类定义一个实例。基本上,带有Eq 实例的类型支持相等和不等运算符(==) 和(/=)。
更多关于类型类的信息在这里,learnyouahaskell.com。在 nuce 中,类型类有点类似于 OOP 的接口。
【讨论】:
这意味着 [a] 中的元素必须是 Eq 类型类,这意味着它们必须是可测试的相等性。
【讨论】:
Ord 更强。
a 类型的项目必须是 Eq 类型类,如前所述。 Eq 类型类定义了可以与其他类型比较相等的类型,使用 th '==' 运算符/函数
这意味着您的函数将“a”项列表作为其唯一参数
[a] is a list of types a
并返回 (Int, a) 对的列表,即 2 元组列表,其中元组中的第一项是 Int,第二项与传递给函数的列表具有相同的类型。
(这里不是以英语为母语的人,抱歉:))
【讨论】: