Eq a => [a] -> [(Int,a)]
我不知道Eq的含义或含义,所以我不知道整个定义的含义是什么?
答案 0 :(得分:11)
这是对定义a
中使用的类型[a] -> [(Int,a)]
的约束:它表示必须为Eq
类型类定义一个实例。基本上,具有Eq
实例的类型支持平等和不等运算符(==)
和(/=)
。
有关类型类的更多信息,请访问learnyouahaskell.com。在nuce中,类型类似于OOP的接口。
答案 1 :(得分:5)
这意味着[a]中的元素必须是Eq类型类,这意味着它们必须是可测试的相等。
答案 2 :(得分:1)
a 类型的项必须是 Eq 类型类,如前所述。 Eq 类型类定义了可以与其他类型进行比较的类型,使用th'=='运算符/函数
这意味着您的函数将唯一参数作为“a”项列表
[a] is a list of types a
并返回(Int,a)对的列表,即2元组的列表,其中元组中的第一项是Int,第二项与传递给函数的列表的类型相同。
(这里不是母语为英语的人,对不起:))