柯里函数为什么叫柯里?

问题描述 投票:0回答:3

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

function functional-programming currying
3个回答
30
投票

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


8
投票

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

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

在 Haskell 中,

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

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

它的实现比类型定义短:

curry f x y =  f (x, y)

0
投票

我不想成为那些有毒的 stackoverflow 回答者之一,但我必须承认,你只需在 google 上搜索“为什么 currying 被称为 currying”(这是第一个结果),就可以发现这是因为 Haskell Curry。虽然我想我在问一些事情时感到内疚,因为有时我可以很容易地自己找到它们,所以我不会责怪你。 (另外,这确实是一个有点迟到的答案,只是为下次提供建议)。

© www.soinside.com 2019 - 2024. All rights reserved.