Composición de funciones con tuberías
Para comenzar a practicar la codificación con tuberías, abre la Terminal/SSH y escribe node.
La función pipeFunctions realiza la composición de funciones de izquierda a derecha utilizando Array.prototype.reduce() con el operador de propagación (...). La primera (más a la izquierda) función puede aceptar uno o más argumentos, mientras que las funciones restantes deben ser unarias.
const pipeFunctions = (...fns) =>
fns.reduce(
(f, g) =>
(...args) =>
g(f(...args))
);
Aquí hay un ejemplo de cómo usar pipeFunctions para crear una nueva función multiplyAndAdd5 que multiplica dos números y luego suma 5 al resultado:
const add5 = (x) => x + 5;
const multiply = (x, y) => x * y;
const multiplyAndAdd5 = pipeFunctions(multiply, add5);
multiplyAndAdd5(5, 2); // 15
En este ejemplo, multiplyAndAdd5 es una nueva función que toma dos argumentos, 5 y 2, y aplica primero multiply a ellos, lo que da como resultado 10, y luego aplica add5 al resultado, lo que da como resultado 15.