What is prelude-ls?
The prelude-ls package is a functional programming library for JavaScript that provides utility functions for tasks like list manipulation, functional composition, and more. It is inspired by Haskell's Prelude module and other functional programming languages.
What are prelude-ls's main functionalities?
List manipulation
Provides functions to work with lists, such as map, filter, and reduce.
[1, 2, 3].map(function(x) { return x * 2; })
Functional composition
Allows the creation of new functions by composing existing ones.
compose([Math.sqrt, function(x) { return x + 1; }])(3)
Currying and partial application
Supports currying and partial application of functions for more flexible code reuse.
var add = curry(function(x, y) { return x + y; }); add(1)(2)
Object manipulation
Provides functions to manipulate objects, such as retrieving keys and values.
keys({a: 1, b: 2})
Other packages similar to prelude-ls
lodash
Lodash is a comprehensive utility library offering a similar set of tools for manipulating arrays, objects, and functions. It is well-documented and widely used with a strong focus on performance.
underscore
Underscore.js is another utility library with functional programming helpers similar to prelude-ls. It is known for its simplicity and has influenced many other libraries in the ecosystem.
ramda
Ramda is a functional programming library that emphasizes a more functional style than prelude-ls, with a focus on immutability and function purity.
functional.js
Functional.js (or fn.js) is a smaller functional programming library that provides similar capabilities to prelude-ls but with a focus on functional chaining and composition.
prelude.ls
is a functionally oriented utility library. It is powerful and flexible. Almost all of its functions are curried. It is written in, and is the recommended base library for, LiveScript.
See the prelude.ls site for examples, a reference, and more.
You can install via npm npm install prelude-ls
Development
make test
to test
make build
to build lib
from src
make build-browser
to build browser versions