【发布时间】:2014-12-18 19:32:10
【问题描述】:
如何在 Haskell 中使用 curry 和 uncurry prelude 函数?
另外,为什么下面的定义在加载的时候会报错?
curry' :: ((a -> b) -> c) -> a -> b -> c
curry' f = \x y -> f (x, y)
uncurry' :: a -> b -> c -> ((a -> b) -> c)
uncurry' f = \(x,y) -> f x y
【问题讨论】:
-
你的定义是正确的,你只是在类型上犯了一个小错误:你想去/从一个接受元组
((a, b) -> c)的函数而不是你现在拥有的另一个函数。所以(a, b)而不是(a -> b)。