[Home] > Snippets  > Languages  > JavaScript  > Fn  >  Compose functions from left to right

Compose functions from left to right

JavaScript

// Compose functions from left to right
const pipe =
(...fns) =>
(x) =>
fns.reduce((y, f) => f(y), x)

Examples

const lowercase = (str) => str.toLowerCase()
const capitalize = (str) => `${str.charAt(0).toUpperCase()}${str.slice(1)}`
const reverse = (str) => str.split('').reverse().join('')

const fn = pipe(lowercase, capitalize, reverse)

// We will execute `lowercase`, `capitalize` and `reverse` in order
fn('Hello World') === 'dlrow olleH'