【问题标题】:What does this Haskell definition mean?这个 Haskell 定义是什么意思?
【发布时间】:2012-04-24 13:42:18
【问题描述】:
Eq a => [a] -> [(Int,a)]

我不知道 Eq 是什么意思,所以我不知道整个定义是什么意思?

【问题讨论】:

    标签: haskell syntax


    【解决方案1】:

    这是关于定义[a] -> [(Int,a)] 中使用的类型a 的约束:它说它必须为Eq 类型类定义一个实例。基本上,带有Eq 实例的类型支持相等和不等运算符(==)(/=)

    更多关于类型类的信息在这里,learnyouahaskell.com。在 nuce 中,类型类有点类似于 OOP 的接口。

    【讨论】:

      【解决方案2】:

      这意味着 [a] 中的元素必须是 Eq 类型类,这意味着它们必须是可测试的相等性。

      【讨论】:

      • 平等的,不可比较的。 Ord 更强。
      【解决方案3】:

      a 类型的项目必须是 Eq 类型类,如前所述。 Eq 类型类定义了可以与其他类型比较相等的类型,使用 th '==' 运算符/函数

      这意味着您的函数将“a”项列表作为其唯一参数

      [a] is a list of types a
      

      并返回 (Int, a) 对的列表,即 2 元组列表,其中元组中的第一项是 Int,第二项与传递给函数的列表具有相同的类型。

      (这里不是以英语为母语的人,抱歉:))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-24
        • 1970-01-01
        • 1970-01-01
        • 2018-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多