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));


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM