柯里化在函数式编程中的一点理解
柯里化在函数式编程中的一点理解
ref: 函数式编程指北
只传给函数一部分参数通常也叫做局部调用(partial application),能够大量减少样板文件代码(boilerplate code)
柯里化可以通过”局部调用”,一来可以简化代码。其二,通过这样一个类似“预加载”的操作,在 代码编排(compose)
的时候,将实例方法在没有实例的情况也能编排成管道流。
// 编排函数
const compose = function(f, g) {
return function(x) {
return f(g(x));
};
};
// 将 trim 方法柯里化
const trim = function (str) {
return str.trim();
};
// 将字符串的 toLowerCase 方法柯里化
const toLower = function (str) {
return str.toLowerCase();
};
// 通过柯里化,这里可以把字符串的两个实例函数合并成一个工作流
const compact = compose(toLower, trim);
// 控制台输出为 'abcd'
console.log(compact(' ABCD'));