hoff
Version:
A collection of higher order functions you may find useful
41 lines (28 loc) • 1.11 kB
JavaScript
// function sequencing
// compose(f, g)(x) = f(g(x))
;
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _wrap = require('./wrap');
var _wrap2 = _interopRequireDefault(_wrap);
var _unwrap = require('./unwrap');
var _unwrap2 = _interopRequireDefault(_unwrap);
var _identity = require('./identity');
var _identity2 = _interopRequireDefault(_identity);
var _accumulate = require('./accumulate');
var _accumulate2 = _interopRequireDefault(_accumulate);
var sequence = function sequence() {
for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
funcs[_key] = arguments[_key];
}
return function () {
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return (0, _unwrap2['default'])((0, _accumulate2['default'])(_wrap2['default'], args).apply(undefined, funcs));
};
};
exports['default'] = sequence;
module.exports = exports['default'];