1
0
mirror of https://github.com/cp6/my-idlers.git synced 2024-11-16 23:42:32 +01:00
my-idlers/node_modules/compose-function
cp6 fd22b0bf58 V2 (Laravel re-make)
V2 (Laravel re-make)
2022-03-06 02:02:12 +11:00
..
module V2 (Laravel re-make) 2022-03-06 02:02:12 +11:00
index.js V2 (Laravel re-make) 2022-03-06 02:02:12 +11:00
LICENSE.md V2 (Laravel re-make) 2022-03-06 02:02:12 +11:00
package.json V2 (Laravel re-make) 2022-03-06 02:02:12 +11:00
README.md V2 (Laravel re-make) 2022-03-06 02:02:12 +11:00
test.js V2 (Laravel re-make) 2022-03-06 02:02:12 +11:00

Travis npm Dependency Status Coveralls

Compose-Function

Installation | Usage | Related | License


logo by Justin Mezzell

Compose a new function from smaller functions `f(g(x))`

Installation

npm install compose-function

Usage

Basic usage

import compose from 'compose-function';

const composition = compose(sqr, add2); // sqr(add2(x))

composition(2) // => 16

compose(sqr, inc)(2); // => 9
compose(inc, sqr)(2); // => 5

with curry

import compose from 'compose-function';
import { curry, _ } from 'curry-this';


const add = (x, y) => x + y;

// add(6, sqr(add(2, x)))
compose(
  add::curry(6),
  sqr,
  add::curry(2),
);

// map(filter(list, even), sqr)
compose(
  map::curry(_, sqr),
  filter::curry(_, even),
)([1,2,3,4,5,6,7,8]) // => [4, 16, 36, 64]

:: huh?

If youre wondering what the :: thing means, youd better read this excellent overview by @jussi-kalliokoski or have a look at the function bind syntax proposal. Or checkout the curry-this docs.

License

MIT © Christoph Hermann