JavaScript Currying 3 - Compose

September 15, 2020

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 + 1
const f = (n) => n * 2
const h = compose(f, g)
h(20) // => 42

Share this post on Twitter