为什么功能咖喱叫咖喱?

时间:2015-04-13 20:39:08

标签: function currying

在许多列表处理语言(以及其他语言)中,它们都有一个名为curry的函数,它可以做一些简洁的事情。我的问题是为什么他们称之为咖喱?这个名字来自哪里?我唯一的猜测是来自世界各国的美味咖喱菜肴,但我看不出与这个和功能行为的任何关系。

2 个答案:

答案 0 :(得分:24)

Haskell Curry命名,他致力于函数式编程的数学基础。

答案 1 :(得分:4)

概念本身以Haskell Curry命名,后者开发了它。

Currying基本上是将N个参数的函数转换为N个嵌套函数的“树”,每个参数都有一个参数。

在Haskell中,curry函数将两个参数的函数转换为一个参数的函数,该函数返回一个参数的另一个函数,最终返回结果。它的类型为:

curry :: ((a, b) -> c) -> a -> b -> c

它的实现比类型定义短:

curry f x y =  f (x, y)