zoukankan      html  css  js  c++  java
  • [Javascript] Understand Function Composition By Building Compose and ComposeAll Utility Functions

    Function composition allows us to build up powerful functions from smaller, more focused functions. In this lesson we'll demystify how function composition works by building our own compose and composeAll functions.

    // __test__ 
    
    import {add, inc, dbl, addInc, addIncDbl} from '../function/custom-compose';
    
    describe('basic fns', () => {
        "use strict";
        test('add', () => {
            const res = add(1,2);
            const expected = 3;
            expect(res).toBe(expected);
        });
    
        test('inc', () => {
            const res = inc(2);
            const expected = 3;
            expect(res).toBe(expected);
        });
    
        test('dbl', () => {
            const res = dbl(2);
            const expected = 4;
            expect(res).toBe(expected);
        });
    });
    
    describe('compose', () => {
        "use strict";
        test('add then inc', () => {
            const res = addInc(4, 2);
            const expected = 7;
            expect(res).toBe(expected);
        });
    });
    
    describe('composeAll', () => {
        "use strict";
       test('add, inc then dbl', () => {
           const res = addIncDbl(2, 3);
           const expected = 12;
           expect(res).toBe(expected);
       }) ;
    });
    /*
    * Utils
    * */
    const compose = (f, g) => (...args) => f(g(...args));
    
    const composeAll = (...fns) => fns.reduce(compose);
    /*
    * Libs
    * */
    export const add = (a, b) => a + b;
    
    export const inc = (a) => a + 1;
    
    export const dbl = (a) => a * 2;
    
    export const addInc = compose(inc, add);
    
    export const addIncDbl = composeAll(dbl, inc, add);
  • 相关阅读:
    ngRx 官方示例分析
    ngRx 官方示例分析
    oracle归档日志的操作
    【cocos2dx中Node类getParent和getChildByTag()】学习体会
    Objective-c调用Swift
    关于UITableView的黑线条
    Bootstrap风格button
    第7章 高级分组
    GDB 程序调试简单实践
    HDU 4548 美素数 素数题解
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6667130.html
Copyright © 2011-2022 走看看