这个Haskell定义是什么意思?

时间:2012-04-24 13:42:18

标签: haskell syntax

Eq a => [a] -> [(Int,a)]

我不知道Eq的含义或含义,所以我不知道整个定义的含义是什么?

3 个答案:

答案 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,第二项与传递给函数的列表的类型相同。

(这里不是母语为英语的人,对不起:))