You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			| 
				
					
						
							 | 
			5 years ago | |
|---|---|---|
| .. | ||
| module | 5 years ago | |
| LICENSE.md | 5 years ago | |
| README.md | 5 years ago | |
| index.js | 5 years ago | |
| package.json | 5 years ago | |
| test.js | 5 years ago | |
		
			
				
				README.md
			
		
		
	
	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 you’re wondering what the :: thing means, you’d better read this excellent overview by @jussi-kalliokoski or have a look at the function bind syntax proposal.
Or checkout the curry-this docs.
Related
License
MIT © Christoph Hermann