haskell - curry (==) 是如何工作的?

标签 haskell types ghci currying

我的理解是:

(==) :: Eq a => a -> a -> Bool

应用的一个例子可以是(==) 2 2,其结果为True。

还有:

uncurry (==) :: Eq b => (b, b) -> Bool.

应用的一个例子可以是 uncurry (==) (2, 2),结果为 True。

但我不明白并想象一个例子:

curry (==) :: (Eq a, Eq b) => a -> b -> (a, b) -> Bool

有什么帮助吗?

谢谢,
塞巴斯蒂安

最佳答案

== 可以用在元组上,即可以写成 (a1, b1) == (a2, b2)

在这种情况下,== 的类型专用于 (Eq a, Eq b) => (a, b) -> (a,b) -> Bool.

如果您现在将 curry 应用于该类型,您将得到 (Eq a, Eq b) => a -> b -> (a, b) -> Bool.

关于haskell - curry (==) 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23208887/

相关文章:

methods - 静态类型语言中的多界方法?

scala 扩展特征,方法返回各种类型,类型不匹配

generics - 为什么 java.lang.Integer 和 java.lang.Double 的最小上限被推断为非循环类型?

haskell - 对上的foldr/foldl 似乎忽略第一个元组组件

haskell - JSONify 持久化模型 *包括* id

haskell - 如何让 ghci 查看我从 cabal 安装的软件包?

haskell - 模式匹配语法不是构造函数应用程序语法

haskell - 了解 Haskell 类的种类

Haskell:是否还有其他类似 "_"的东西可以用来表示你不关心值是多少?

haskell - 从边列表构造树: missing Leaf nodes