Haskell函数curry与uncurry的合适定义方程求解求助
Haskell中curry与uncurry函数的定义实现
curry 函数
类型签名:curry :: ((a, b) → c) → a → b → c
它的作用是将一个接受元组参数的函数,转换为接受两个独立参数的柯里化函数。直接的定义方式如下:
curry f x y = f (x, y)
简单来说:你传入一个需要(a,b)元组作为参数的函数f,curry会把后续的两个独立参数x和y打包成元组,再传递给f来获取结果。
uncurry 函数
类型签名:uncurry :: (a → b → c) → (a, b) → c
这是curry的逆操作,用来把接受两个独立参数的柯里化函数,转换为接受元组参数的函数。定义如下:
uncurry f (x, y) = f x y
解释:当你传入一个柯里化的二元函数f,uncurry会把输入的元组(x,y)拆解成两个独立参数,再传递给f执行得到结果。
内容的提问来源于stack exchange,提问作者holypropa
相关产品推荐
相关产品推荐

