JSPM

  • Created
  • Published
  • Downloads 8592
  • Score
    100M100P100Q125970F

A functional JavaScript library that facilitates currying and point-free programming, with optional lambda expressions.

Package Exports

  • functional.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (functional.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

functional.js (fjs) Build Status npm version devDependency Status

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); // => 6
add3(1, 2, 3, 4, 5); // => 18

Curry expression example

var add = fjs.curry("a, b => a + b");

var add3 = add(3);

add(1, 2, 3); // => 6
add3(1, 2, 3, 4, 5); // => 18

Curry ES6 example

const add = fjs.curry((a, b) => a + b);

const add3 = add(3);

add(1, 2, 3); // => 6
add3(1, 2, 3, 4, 5); // => 18

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); // => "€63.50"
poundsToEUR(50); // => "$152.00"

License

MIT License