node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



decorate a function so it will curry if not given enough arguments. See why curry helps for a good explanation of the concept.


With component, packin or npm

$ {package mananger} install jkroso/curryable

then in your app:

var curryable = require('curryable')


curryable(fn:function, [arity]:Number)

make fn curryable

var add = curryable(function(a, b){
  return a + b
var add1 = add(1)
add1(1) == add(1, 1) == 2 // => true 

The optional arity argument allows you to specify how many arguments are optional

var add = curryable(function(a, b, c){
  return a + b + (|| 0)
}, -1)
add(1)(2) == add(1)(2, 0) // => true 

Running the tests

Just run make. It will install and start a development server leaving the tests waiting for you at