17 lines
298 B
JavaScript
17 lines
298 B
JavaScript
/**
|
|
* @param {Function[]} functions
|
|
* @return {Function}
|
|
*/
|
|
var compose = function(functions) {
|
|
return function(x) {
|
|
return functions.reduceRight(
|
|
(val, f) => f(val),
|
|
x,
|
|
);
|
|
};
|
|
};
|
|
|
|
/**
|
|
* const fn = compose([x => x + 1, x => 2 * x])
|
|
* fn(4) // 9
|
|
*/
|