parcoursup/node_modules/cumpa/index.next.js

19 lines
860 B
JavaScript
Raw Normal View History

2023-03-05 13:23:23 +01:00
/**
* Similar to compose but performs from left-to-right function composition.<br/>
* {@link https://30secondsofcode.org/function#composeright see also}
* @param {...[function]} fns) - list of unary function
* @returns {*} result of the computation
*/
export const composeRight = (...fns) => compose(...fns.reverse())
/**
* Performs right-to-left function composition.<br/>
* Use Array.prototype.reduce() to perform right-to-left function composition.<br/>
* The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.<br/>
* {@link https://30secondsofcode.org/function#compose original source code}
* @param {...[function]} fns) - list of unary function
* @returns {*} result of the computation
*/
export default function compose(...fns) {
return fns.reduce((f, g) => (...args) => f(g(...args)))
}