什么是“咖喱”?

我在几篇文章和博客中看到了对curried函数的引用,但我找不到一个好的解释(或者至少有一个解释是有道理的!)

curry是指将一个包含多个参数的函数分解为一系列只包含一个参数的函数。下面是一个JavaScript示例:

函数添加(a、b){
返回a+b;
}
加上(3,4);//返回7

这是一个函数,它接受两个参数a和b,并返回它们的和。我们现在将使用此函数:

函数添加(a){
返回函数(b){
返回a+b;
}
}

这是一个函数,它接受一个参数a,并返回一个接受另一个参数b,该函数返回它们的和

add(3)(4);
var add3=添加(3);
增补3(4);

第一条语句返回7,就像add(3,4)语句一样。第二条语句定义了一个名为add3的新函数,该函数将在其参数中添加3。(有些人可能称之为闭包。)第三条语句使用add3操作将3添加到4,结果再次生成7

发表评论