![]() |
1
18
Curry用于将具有x参数的函数转换为具有y参数的函数,因此可以将其传递给需要具有y参数的函数的另一个函数。
例如
你可以用咖喱来“储存”食物
是 一种咖喱。
咖喱是一种解决特定函数式语言语法问题的方法。使用匿名委托和lambda运算符,.NET中的语法要简单得多。 |
![]() |
2
12
首先考虑FN(x,y,z)更容易。这可以通过使用fn(x,y)得到一个只接受一个参数z的函数来实现。需要单独使用x和y执行的任何操作都可以通过返回函数保留的闭包来完成和存储。 现在,您可以使用z的各种值多次调用返回函数,而不必重新计算所需的x和y部分。
咖喱有两个原因。 参数缩减正如Cameron所说,将包含2个参数的函数转换为只包含1个参数的函数。使用一个参数调用此curried函数的结果与使用两个参数调用原始函数的结果相同。
在C#中存在lambda时,这具有有限的价值,因为它们无论如何都可以提供这种效果。尽管您使用的是C#2,但您问题中的Curry函数具有更大的价值。
分段计算
这种类型的咖喱在C#中是不可能实现的,它实际上需要一种函数式语言,这种语言可以在本地咖喱它的任何函数来实现。 结论通过您提到的Curry进行参数缩减在C#2中很有用,但在C#3中由于Lambdas的原因,参数缩减的价值大大降低。 |
![]() |
3
0
我特别喜欢这篇文章的解释和篇幅 page . |
![]() |
4
0
详细信息:。净委托使用隐式咖喱。类的每个非静态成员函数都有一个隐式
在C++中,Boo::Bin等被用于相同的。和往常一样,C++中的所有东西都更明确一些(例如,如果您想将实例成员函数传递回回调),则需要显式绑定
|
![]() |
5
0
我举了一个愚蠢的例子:
咖喱功能:
用法:
玩得高兴 |
![]() |
6
-1
|
![]() |
Sergei · 删除数据框中多个列的列表中的某些元素 2 年前 |