在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。
主要作用
function add(a, b) {
return a + b;
}
add(1, 2, 3)
var addCurry = curry(add);
addCurry(1)(2)(3)// 6
function currying(fn, ...args) {
return function () {
let rest = [...args, ...arguments]
if (rest.length < fn.length) {
return currying.call(this, fn, ...rest)
} else {
return fn.apply(this, rest)
}
}
}
原文:https://www.cnblogs.com/dark-duck/p/14327207.html