|
|
1
1
使用C语言的优势在于,它允许C语言开发人员以函数式编程风格进行开发。 想想林肯。LINQ查询允许您将方法作为参数传入:
这是一个大多数.NET3开发人员都熟悉的例子,但很少有人意识到他们正在涉足函数编程。没有咖喱的能力,林肯是不可能的。 …希望能弥补我的愚蠢评论。 |
|
|
2
12
|
|
|
3
12
如果您的问题是如何在c中实现curring,那么下面是一个示例
curring可以用任何支持闭包(lambdas)的语言实现,对于部分函数应用程序(如在ui编程中)非常有用,在ui编程中,执行函数所需的所有输入都没有收到,因此curryed函数被传递出去,而已接收的输入被捕获。在里面。 |
|
4
1
我发现当我想重用代码时,部分函数应用程序(而不是curring)非常有用。 为了清楚起见,由于curring和部分函数应用的定义似乎变得模糊,所以通过部分函数应用,我的意思是取一个具有n个参数的函数,并将其转换为具有n-1个参数的函数。 尤其是在编写单元测试时,它非常方便。因为我将编写数百个单元测试,所以我尽可能重用测试代码。所以我可能有一个通用的测试方法,它将委托给我想要测试的方法,加上该方法的一些参数和一个预期的结果。公共测试方法将使用提供的参数执行被测方法,并将有多个断言将结果与预期结果进行比较。 当我想测试一个比传递给公共测试方法的委托具有更多参数的方法时,问题就来了。我可以编写另一个与第一个相同的通用测试方法,除了使用不同签名的委托。不过,这似乎是在重复我自己。为了避免编写这样重复的代码,我可以使用部分函数应用程序将一个接受委托(例如,两个参数)转换为接受单个参数的委托。现在,我可以使用我的通用测试方法来测试采用一个或两个参数的方法。 下面是我用来修复传入的委托的一个参数的助手方法:
|
|
|
5
-1
简单的咖喱
|
|
|
CL. · 如何将Curry()与Vectorize()结合? 9 年前 |
|
|
JuanPablo · javascript,向原型添加函数 9 年前 |
|
|
Spark Monkay · Curry匿名函数 9 年前 |
|
|
sharath chandra · Scala函数文本类型问题 9 年前 |
|
|
pathikrit · Scala部分函数应用语义+同步锁定 9 年前 |
|
|
Charles Pehlivanian · R库里古怪 11 年前 |