code: function compose () {
          var fns = arguments;
  
          return function () {
              var result = void 0;
  
              for (var i = fns.length - 1; i > -1; i--) {
                  if (i === fns.length - 1) {
                      result = fns[i].apply(fns[i], arguments);
                  } else {
                      result = fns[i].call(this, result);
                  }
              }
  
              return result;
          };
      }
docs: Function to compose other functions (right to left evaluation)