fn
compose
v0.0.10testedComposes functions right-to-left: `compose(f, g)(x)` is `f(g(x))`
Example
ts
const calc = compose((n: number) => `= ${n}`, (n: number) => n * 2, (n: number) => n + 1);
calc(3); // '= 8'Signatures
ts
export function compose<A extends any[], B>(ab: (...a: A) => B): (...a: A) => B;ts
export function compose<A extends any[], B, C>(bc: (b: B) => C, ab: (...a: A) => B): (...a: A) => C;ts
export function compose<A extends any[], B, C, D>(cd: (c: C) => D, bc: (b: B) => C, ab: (...a: A) => B): (...a: A) => D;ts
export function compose<A extends any[], B, C, D, E>(de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (...a: A) => B): (...a: A) => E;ts
export function compose<A extends any[], B, C, D, E, F>(ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (...a: A) => B): (...a: A) => F;ts
export function compose<A extends any[], B, C, D, E, F, G>(fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (...a: A) => B): (...a: A) => G;ts
export function compose<A extends any[], B, C, D, E, F, G, H>(gh: (g: G) => H, fg: (f: F) => G, ef: (e: E) => F, de: (d: D) => E, cd: (c: C) => D, bc: (b: B) => C, ab: (...a: A) => B): (...a: A) => H;Parameters
| Parameter | Type | Description |
|---|---|---|
fns? | AnyFunction[] | The functions to compose; the last may take any number of arguments |
Returns
AnyFunctionA function that runs the input through every function from last to first