0
点赞
收藏
分享

微信扫一扫

函数式编程之柯里化和组合函数

小桥流水2016 2022-03-11 阅读 135

(一)柯里化 (Curry)

1、概念
柯里化把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接收剩余的参数柯里化,帮助我们将任意多元函数变成一元函数的处理。柯里化实现的意义能:代码能够更好地复用,这是对函数参数的一种缓存,让函数更灵活,颗粒度更小,便于函数组合产生最大的功能

2、实现

function curry(func) {
    return function curriedFn(...args) {
        if (args.length < func.length) {
            //如果实际参数的个数小于形参个数,我们要返回一个新的函数
            return function () {
                return curried(...args.concat(Array.from(arguments)));
            };
        }
        //实际参数大于等于形参个数
        return func(...args);
    };
}

function getSum(a, b, c) {
    return a + b + c;
}
const curried = curry(getSum);

console.log(curried(1, 2, 4));

console.log(curried(1)(2, 3));

console.log(curried(1)(2)(3));

(二)组合函数 (Compose)

1、概念:
函数组合,若一个函数要经过多个函数处理才能够得到最终值,这个时候可以把中间过程的函数合并成一个函数,函数就像数据的管道,函数组合就是把这些管道连接起来,让数据穿过多个管道,形成最终结果。函数组合默认执行顺序是从右往左直行的

2、实现:

**

(三)柯里化和组合( Curry + Compose)

**

举报

相关推荐

0 条评论