Compose and Pipe

Compose:

Composing or Composition is the idea that any sort of data transformation that we do should be obvious.

In a factory, we have a data that gets processed by a function and outputs a data and processed by another function and outputs a data and so for.

data --> function --> data --> function -->

Composability is a system design principle, that deals with the relationship between components.

Ex:
const compose = (f, g) => (data) => { f(g(data)) };
const multiplyBy3 = (num) => num * 3;
const makePositive = (num) => Math.abs(num);
const multiplyBy3AndAbsolute = compose(multiplyBy3, makePositive);
 multiplyBy3AndAbsolute(-50); // 150

Pipe:

Pipe is same as compose, instead going from right to left, it goes left to right.

Ex:
const pipe = (f, g) => (data) => { g(f(data)) };
const multiplyBy3 = (num) => num * 3;
const makePositive = (num) => Math.abs(num);
const multiplyBy3AndAbsolute = pipe(multiplyBy3, makePositive);
 multiplyBy3AndAbsolute(-50); // 150
 // copose and pipe gives the same result

Arity:

Arity is simply the number of arguments that a function takes.

Last updated