Javascript的函数柯里化

Posted 珂珂kk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript的函数柯里化相关的知识,希望对你有一定的参考价值。

  在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的,尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的。

 

例子

function sum(a, b, c) {
  return a + b + c;
}
// 调用
sum(1, 2, 3); // 6

上述函数实现的是将a,b,c三个参数相加,改写为柯里化函数如下:

function sum(a) {
  return function (b) {
    return function(c) {
    	return a + b + c;
		} 
	}
}
// 调用
let sum1 = sum(1);
let sum2 = sum1(2);
sum2(3); // 6



所谓柯里化就是把具有较多参数的函数转换成具有较少参数的函数的过程。
参数复用

转载自知乎:https://zhuanlan.zhihu.com/p/104874439

以上是关于Javascript的函数柯里化的主要内容,如果未能解决你的问题,请参考以下文章

带你看懂javascript函数柯里化(currying)

JavaScript中的函数柯里化

JavaScript函数式编程(纯函数柯里化以及组合函数)

Javascript的函数柯里化

翻译JavaScript 中的函数式编程:函数组合与柯里化

JavaScript高级函数相关知识:函数纯函数柯里化严格模式