码迷,mamicode.com
首页 > Web开发 > 详细

js函数式编程curry与compose实现

时间:2019-01-20 13:44:09      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:turn   ret   const   js函数   函数   s函数   curry   function   func   

//自行实现以下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实现

标签:turn   ret   const   js函数   函数   s函数   curry   function   func   

原文地址:https://www.cnblogs.com/sgqwjr/p/10294176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!