在许多列表处理语言(以及其他语言)中,它们都有一个名为 curry 的函数,它可以做一些巧妙的事情。我的问题是为什么他们称之为咖喱?这个名字从何而来?我唯一的猜测是来自世界各国的美味咖喱菜肴,但我看不出与此和功能行为有任何关系。
它以 Haskell Curry 命名,他致力于函数式编程的数学基础。
这个概念本身以开发它的Haskell Curry命名。
Currying 基本上是将 N 个参数的函数转换为 N 个嵌套函数的“树”,每个嵌套函数采用一个参数。
在 Haskell 中,
curry
函数将两个参数的函数转换为一个参数的函数,该函数返回一个参数的另一个函数,最终返回结果。它的类型是:
curry :: ((a, b) -> c) -> a -> b -> c
它的实现比类型定义短:
curry f x y = f (x, y)
我不想成为那些有毒的 stackoverflow 回答者之一,但我必须承认,你只需在 google 上搜索“为什么 currying 被称为 currying”(这是第一个结果),就可以发现这是因为 Haskell Curry。虽然我想我在问一些事情时感到内疚,因为有时我可以很容易地自己找到它们,所以我不会责怪你。 (另外,这确实是一个有点迟到的答案,只是为下次提供建议)。