为什么功能咖喱叫咖喱?

Teo*_*off 13 function currying

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

SLa*_*aks 25

它以Haskell Curry的名字命名,他致力于函数式编程的数学基础.


Mis*_*hor 5

该概念本身以开发它的Haskell Curry命名。

基本上,咖喱化是将N个参数的函数转换为N个嵌套函数的“树”,每个函数都使用一个参数。

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

curry :: ((a, b) -> c) -> a -> b -> c
Run Code Online (Sandbox Code Playgroud)

它的实现比类型定义短:

curry f x y =  f (x, y)
Run Code Online (Sandbox Code Playgroud)