js函数式编程curry与compose实现

Posted 云行月翔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js函数式编程curry与compose实现相关的知识,希望对你有一定的参考价值。

//自行实现以下curry函数和compose
//curry
function curry(fn) {
return function aa (...arg) {
if (arg.length >= fn.length) {
return fn(...arg);
} else {
return aa.bind(null, ...arg);
}
}
}
const curry = (fn) => aa = (...arg) => arg.length >= fn.length ? fn(...arg): aa.bind(null, ...arg);
// compose
function compose(...arr) {
return function (...arr2) {
(function aa(n) {
if (n < arr.length -1) {
return arr[n](aa(++n))
} else {
return arr[n](...arr2);
}
})(0)
}
}
const compose = (...arr) => (...arr2) => ((aa = (n) => n < arr.length - 1 ? arr[n](aa(++n)): arr[n](...arr2))(0));



















以上是关于js函数式编程curry与compose实现的主要内容,如果未能解决你的问题,请参考以下文章

编程范式函数式基础图示

快速写curry函数和compose函数

函数式编程-compose与pipe

JS函数式编程优化

js函数式编程-柯里化

谈谈函数式编程curry