functional.js (fjs)
functional.js is a functional JavaScript library.
It facilitates currying and point-free / tacit programming, with optional lambda expressions.
Documentation
Visit functionaljs.com for the full documentation including curry, each, map, reduce, fold, apply, every, any, select, pluck, toArray, first, last, best, partition, group, while and more.
Curry function example
var add = fjs.curry(function(a, b) {
return a + b;
});
var add3 = add(3);
add(1, 2, 3);
add3(1, 2, 3, 4, 5);
Curry expression example
var add = fjs.curry("a, b => a + b");
var add3 = add(3);
add(1, 2, 3);
add3(1, 2, 3, 4, 5);
Curry ES6 example
const add = fjs.curry((a, b) => a + b);
const add3 = add(3);
add(1, 2, 3);
add3(1, 2, 3, 4, 5);
Real world example
var converter = fjs.curry(function(rate, symbol, input) {
var output = input * rate;
return symbol + output.toFixed(2);
});
var poundsToUSD = converter(1.52, "$");
var poundsToEUR = converter(1.27, "€");
poundsToUSD(100);
poundsToEUR(50);
License
MIT License