Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
interlude
Advanced tools
Readme
Interlude is a functional ES6 based JavaScript library inspired by Haskell. It's aims to simplify and abstract common patterns by providing a set of common higher order functions.
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 { range, pow, times, all, eq, comparing, zipWith, zipWith3, iterate, gcd, uniqueBy, iterate, interval } from 'interlude'
range(5).map(pow(2));
// [ 1, 4, 9, 16, 25 ]
var nested = [ [ 1, 3, 2 ], [ 2, 2 ], [ 1, 4, 2, 3 ] ];
nested.filter(all(eq(2)));
// [ [2, 2] ]
// outer sort by property
nested.sort(comparing('length'));
// [ [ 2, 2 ], [ 1, 3, 2 ], [ 1, 4, 2, 3 ] ]
zipWith3((x, y, z) => x + y + z, [1,1,1,1,1], range(5), [1,0,0]);
// [ 3, 3, 4 ]
// Powers of two
iterate(8, 2, times(2));
// [ 2, 4, 8, 16, 32, 64, 128, 256 ]
// Pascal's Triangle
var pascalNext = (row) => zipWith((x, y) => x + y, row.concat(0), [0].concat(row));
iterate(6, [1], pascalNext);
// [ [ 1 ],
// [ 1, 1 ],
// [ 1, 2, 1 ],
// [ 1, 3, 3, 1 ],
// [ 1, 4, 6, 4, 1 ],
// [ 1, 5, 10, 10, 5, 1 ] ]
// Prime numbers
var notCoprime = (x, y) => gcd(x, y) > 1;
uniqueBy(notCoprime, interval(2, 20));
// [ 2, 3, 5, 7, 11, 13, 17, 19 ]
Interlude is merely a stable front for three re-exported modules:
interlude
├─── autonomy
├─── operators
└─── subset
These modules are of course requirable by themselves, and we encourage you to require them directly. The submodules are small (<150 lines each) and focused.
Regardless, you should read their short and independent APIs:
Additionally, two extra modules (which were not included in interlude due to their smaller likelihood of use) are also good fits. They do not overlap in API, and are highly recommended when needed. You may wish to read their short APIs as well.
$ npm install interlude
MIT-Licensed. See LICENSE file for details.
FAQs
Functional JavaScript library
The npm package interlude receives a total of 811 weekly downloads. As such, interlude popularity was classified as not popular.
We found that interlude demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.