A minimal-weight currying utility similar to lodash.curry
npm install @ngard/tiny-curry



A minimal utility similar to lodash.curry. For when every byte counts!
Returns a series of functions that consume the original function's arguments one at a time until the original function's arity (or the passed arity) is met.
lodash.curry: 
tiny-curry: 
``bash`
npm install @ngard/tiny-curry
`javascript`
curry(/ function [, arity] /);
function - A function that will be called once the parameters are gathered through currying.arity - The number of curry functions to create before returning the result of the passed function called with the arguments. Defaults to function.length.
method that may be invoked to apply the currently gathered arguments to the function.Examples
`javascript
import { curry } from '@ngard/tiny-curry';function add(a, b) { return a + b; }
// add.length = 2, the number of arguments it expects
const curriedAdd = curry(add);
const addTwo = curriedAdd(2);
console.log(addTwo(5)); // logs '7'
``javascript
import { curry } from '@ngard/tiny-curry';function greet(name, title = 'Your Lordship') {
return
Good day, ${name}, ${title};
}
// greet.length = 1, because defaulted arguments are not 'expected'const curriedGreet = curry(greet, 2);
const greetBob = curriedGreet('Bob');
console.log(greetBob('my friend')); // logs 'Good day, Bob, my friend'
console.log(greetBob()); // logs 'Good day, Bob, Your Lordship'
``javascript
import { curry } from '@ngard/tiny-curry';function sum(...numbers) {
return numbers.reduce((total, number) => total + number);
}
// sum.length = 0, because rest arguments are not 'expected'
const curriedSum = curry(sum, Infinity);
// call
.value() on an infinitely curried function to call the
// original function with the gathered arguments
const total = curriedSum(1)(2)(3)(4).value();console.log(total); // logs '10'
``