柯里化:是把一个多参数函数转化成一个嵌套的一元函数的过程;
实现
const curry = function (fn) {
return function curryFn(...args) {
if (args.length < fn.length) {
return function () {
return curryFn(...args, ...arguments);
}
} else {
return fn(...args);
}
}
}
-
柯里化意义
-
让纯函数更”纯“,每次接受一个参数,松散解耦
-
某些语言及特定环境下只能接受一个参数
-
惰性执行
-
组合函数:无需创建新的函数,通过基础函数解决眼前问题。 多函数组合:从后往前依次执行。
const compose = (...fns)=>val=>fns.reverse().reduce((acc,fn)=>fn(acc),val);