Functional JavaScript (deprecated)
This code, from 2007, is deprecated. I'm keeping it available for historical interest.
Some of the ideas in this code and in its companion collections.js
were used in Jeremy Ashkenas's Underscore.js, which in turn inspired Lodash. Use those instead.
CoffeeScript (aso by Jeremy Ashkenas) and ECMAScript 6 also include arrow functions and functional programming functions such as map
. If you use these languages, or many other modern languages that compile into ECMAScript, you can do functional prorammming entirely within the language.
Thanks to everyone who has contributed, and to everyone who has thanked me over the years, thank you in turn.
Links
Original README
Functional defines higher-order methods and functions for functional
and function-level programming. It also defines "string lambdas",
that allow strings such as x+1
and x -> x+1
to be used in some
contexts as functions.
It is licensed under the MIT License.
For more details, see http://osteele.com/sources/javascript/functional/.
Credits
- Oliver Steele β original author
- Dean Edwards β
Array.slice
suggestion - henrah β
Function.lambda
memoization - Raganwald β Rhino compatibility
- Jesse Hallett β Spidermonkey shell compatibiilty
- Florian SchΓ€fer β allow leading and trailing spaces in expressions
- Angus Croll β bug fix