Skip to content

September 15, 2020

JavaScript Currying 3 - Compose

Unleash the power of JavaScript currying with compose! Create powerful function pipelines and elevate your code to new heights.

The compose function in the code below takes any number of functions, returns a function that takes the initial value, and then uses the reduceRight function to iterate right-to-left over each function f in functions argument and returns the accumulated value y. In other words, the compose function creates a pipeline of functions with the output of the function is connected to the input of the next function.

index.js
const compose =  (...functions) =>  (x) =>    functions.reduceRight((y, f) => f(y), x)
const g = (n) => n + 1const f = (n) => n * 2const h = compose(f, g)h(20) // => 42