2

我在网上读到一个人的声明说“currying 只是一种具有可选参数的奇特方式”。凭直觉,我觉得这种说法很肤浅和错误,但我不能真正指出它,可能是因为我对 lambda 演算没有足够的知识。

当我试图解释差异时,我的解释跨越了段落,主要归结为“Currying 是函数声明的所有变体都具有较少数量的参数作为类型。但是你不能将带有可选参数的函数的所有组合作为有效类型和在其他声明中使用它们,至少不会自动使用”。

我的方法一开始是正确的吗?更重要的是,有没有一种更简单、更简单的方式来解释它?

4

1 回答 1

5

它与任何可选性无关。

但不是定义一个接受两个参数的函数,您可以定义一个只接受一个参数的函数,并返回一个接受另一个参数的函数。

最终结果是相同的(调用者最终提供了两个参数),但是使用柯里化,您一次只提供一个。

于 2011-02-15T18:20:41.070 回答