柯里化
柯里化是将一个多参数函数转换成多个单参数函数。
function add(a, b) {
return a + b;
}
// 执行 add 函数,一次传入两个参数即可
add(1, 2) // 3
// 假设有一个 curry 函数可以做到柯里化
var addCurry = curry(add);
addCurry(1)(2) // 3
偏函数(局部应用)
偏函数则是固定一个函数的一个或者多个参数。
function add(a, b) {
return a + b;
}
// 执行 add 函数,一次传入两个参数即可
add(1, 2) // 3
// 假设有一个 partial 函数可以做到局部应用
var addOne = partial(add, 1);
addOne(2) // 3
仔细观察两个例子最后的传参方式,柯里化和偏函数的区别显而易见。