GithubHelp home page GithubHelp logo

halis-curry's Introduction

halis-curry

Spice up the JavaScript inter-webs with some currying

Install

npm install halis-curry --save

Unit Tests ( if you download the git repo )

npm install && npm run test

Usage

Minimal usage:

const curry = require( 'halis-curry' );

const add = ( a, b, c ) => a + b + c;
const fn = curry( add );

fn( 2, 2, 2 ); 		// 6
fn( 2, 2 )( 2 ); 	// 6
fn( 2 )( 2 )( 2 ); 	// 6
fn( 2, 2, 2, 2 );	// 6
fn( 2, 2, 2 )( 2 )  // Error: after fn( 2, 2, 2 ) the result is 6 not a function!

/*** 
	lets expand the signature of a find function 
	which normally only gives you access to the item and index
***/

const list = [
	{ id: 1, name: 'Bob' },
	{ id: 2, name: 'Billy' }
];

const find = ( searchId, item, index ) => item.id === searchId;
const fn = curry( find )( 1 );

/* 
	now our function can have access to the searchId param of 1 
	and still be used by [].find
*/

list.find( fn ); // { id: 1, name: 'Bob' }

/***
	lets expand the signature of a map function 
	which normally only gives you access to the item and index
***/

const list = [
	{ id: 1, name: 'Bob' },
	{ id: 2, name: 'Billy' }
];

const transform = ( msg, item, index ) => {
	item.msg = msg
	return item;
};
const fn = curry( transform )( 'awesome' );

list.map( fn ); 
/* 
	[
		{ id: 1, name: 'Bob', msg: 'awesome' },
		{ id: 2, name: 'Billy', msg: 'awesome' }
	]
*/

halis-curry's People

Contributors

halis avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.