【发布时间】:2013-08-26 06:05:35
【问题描述】:
我有下一个方法的定义:
def add1(x: Int, y: Int) = x + y
def add2(x: Int)(y: Int) = x + y
第二个是第一个的咖喱版本。然后,如果我想部分应用第二个函数,我必须写 val res2 = add2(2) _。一切顺利。接下来我想对 add1 函数进行柯里化。我写
val curriedAdd = (add1 _).curried
curriedAdd 与add2 相似,我说得对吗?
但是,当我尝试以 val resCurried = curriedAdd(4) _ 的这种方式部分应用 curriedAdd 时,会出现编译错误。然后我将其修复为
val resCurried = curriedAdd(4)
为什么Functions.curried 的结果与添加函数的咖喱版本不同(来自add2)?
【问题讨论】: