Skip to content

tournament-js/autonomy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Autonomy

npm status build status dependency status coverage status

Autonomy is a lightweight functional helper library. It is meant to complement an ES6 style with curried helpers, math helpers, curried accessors and higher order looping constructs.

These library is partly inspired by Haskell's Prelude.

Usage

Use it with qualified imports with the yet unfinished module import syntax or attach it to the short variable of choice. For selling points, here's how it will look with ES7 modules.

import { not, any, gcd, elem, even, range, replicate, zip3, zipWith2, reduce } from 'autonomy'

var partition = (p, xs) => [xs.filter(p), xs.filter(not(p))];
partition((x) => x > 5, [8,3,4,5,6]); // [ [ 8, 6 ], [ 3, 4, 5 ] ]

[[3,4,5], [4,5,6]].filter(any(elem([6, 7]))); // [ [ 4, 5, 6 ] ]

range(10).filter(even); // [ 2, 4, 6, 8, 10 ]

replicate(5).forEach(cluster.fork); // calls a function with undefined arguments

zip3(range(5), [1,2], [3,2,5]); // [ [ 1, 1, 3 ], [ 2, 2, 2 ] ]
zipWith2(gcd, [5, 10, 15], range(5)); // [ 1, 2, 3 ]

var product = reduce((x, y) => x * y, 1);
var factorial = (n) => product(range(n));
factorial(4); // 24

Read the read the API.

This modules makes up the core part of the larger utility library interlude.

Installation

$ npm install autonomy

License

MIT-Licensed. See LICENSE file for details.

About

Lightweight functional helper library complementing ES6

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •