chickencurry
Add some chicken curry to your functions
Last updated 11 years ago by schtoeffel .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install chickencurry 
SYNC missed versions from official npm registry.

:curry: Chickencurry

Build Status npm version Coverage Status

Add some chickencurry to your functions

Library to curry a function. It supports auto rurrying, currying a number of arguments, placeholders and partial applications.

Installation

npm install chickencurry

Usage

Basic usage

var curry = require('chickencurry');

function add(a, b) {
  return a + b;
}
var add1 = curry(add)(1);

add1(3); // => 4
add1(4); // => 5

curry with function bind syntax :: (ES2015)

var curry = require('./');

var add1 = function(a, b) {
  return a + b;
}::curry(1);

add1(3); // => 4
add1(4); // => 5

var sub = function(a, b) {
  return a - b;
}::curry();

sub(3)(1); // => 2

Curry n arguments

var curryN = require('chickencurry/N');

function join() {
  return Array.prototype.slice.call(arguments).join(',');
}

curryN(join, 3)(1)(2)(3) // => '1,2,3'

Curry 1,2 or 3 arguments

var curry1 = require('chickencurry/1');
var curry2 = require('chickencurry/2');
var curry3 = require('chickencurry/3');

curry1(join)(1) // => '1'
curry2(join)(1)(2) // => '1,2'
curry3(join)(1)(2)(3) // => '1,2,3'

Partial applications

var curryN = require('chickencurry/N');

function join() {
  return Array.prototype.slice.call(arguments).join(',');
}

curryN(join, 3, 'Fish', 'Chicken')('...'); // => 'Fish,Chicken,...')
curryN(join, 3)('Fish', 'Chicken')('...'); // => 'Fish,Chicken,...')

Placeholder

You can curry a function using placeholders, if you want to set the i.e 3rd argument.

function join(a, b, sep) {
  return a + sep + b;
};

var __ = require('chickencurry/__');

var join_ = curry(join, __, __, '_'); 
// or var join_ = curry(join, undefined, undefined, '_'); 

join_('chicken', 'curry'); // => 'chicken_curry'


var joinCurry = curry(join); 
var joinDash = joinCurry(__, __, '-');

joinDash('chicken', 'curry'); // => 'chicken-curry'

Current Tags

  • 2.2.1                                ...           latest (11 years ago)

17 Versions

  • 2.2.1                                ...           11 years ago
  • 2.2.0                                ...           11 years ago
  • 2.1.1                                ...           11 years ago
  • 2.1.0                                ...           11 years ago
  • 1.4.0                                ...           11 years ago
  • 1.3.0                                ...           11 years ago
  • 1.2.1                                ...           11 years ago
  • 1.2.0                                ...           11 years ago
  • 1.1.1                                ...           11 years ago
  • 1.1.0                                ...           11 years ago
  • 1.0.2                                ...           11 years ago
  • 1.0.1                                ...           11 years ago
  • 1.0.0                                ...           11 years ago
  • 0.4.0                                ...           11 years ago
  • 0.3.0                                ...           11 years ago
  • 0.2.0                                ...           11 years ago
  • 0.1.0                                ...           11 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (0)
None
Dev Dependencies (16)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |