pipeline

by Artem

HTML

const pipeline = (dbl, inc); pipeline(2); // 5

JavaScript

'use strict';

const inc = num => num + 1;
const dbl = num => num * 2;

function pipe(...fns) {
  return (...args) => {
    return fns.reduce((res, next, idx, fnsArr) => {
      return fnsArr[idx].apply(null, [].concat(res));
    }, args);
  };
}

const pipeline = pipe(dbl, inc);
const result = pipeline(2);
console.log(result);