柯里化是将一个接受多个参数的函数转换为一系列只接受单一参数的函数的技术。
具体来说,对于一个原本需要 f(a, b, c) 的函数,经过柯里化后会变成 f(a)(b)(c) 的形式。每次调用传入一个参数,并返回一个新的函数来接收下一个参数,直到所有参数传完并执行原函数逻辑。核心作用与优势
参数复用:固定某些参数,生成更具体的功能函数。
例如:创建一个始终加5的函数 add5 = curriedAdd(5),之后直接调用 add5(3) 得到8。
延迟执行:在参数未完全传入前不执行,便于组合和配置。
函数组合:提升代码的模块化和可读性,广泛应用于函数式编程中。
简单示例(JavaScript)
function add(a, b) {
return a + b;
}
// 柯里化版本
function curriedAdd(a) {
return function(b) {
return a + b;
};
}
console.log(curriedAdd(2)(3)); // 输出 5