Code

Functional Programming Reduce

StraightForward Calling

/**
 * @param {Function[]} functions
 * @return {Function}
 */
var compose = function(functions) {
    return function(x) {
        for(const fn of functions.reverse()) {
            x = fn(x)
        }
        return x;
    };
};
 
/**
 * const fn = compose([x => x + 1, x => 2 * x])
 * fn(4) // 9
 */

Notes


References