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