lemonad
A functional programming library for JavaScript inspired by Clojure, Haskell, SML and Forth.
Using
Add the following to your 'package.json' file in the "dependencies"
section:
"lemonad": "0.7.4"
Currently available functions
[ '$',
'CAS',
'CASMixin',
'L',
'Hole',
'RefMixin',
'VERSION',
'WatchableMixin',
'actions',
'addWatch',
'checker',
'compareAndSwap',
'ctor',
'curry',
'curry2',
'curry3',
'curry4',
'dec',
'dispatcher',
'eq',
'filter',
'gt',
'gte',
'invokeAll',
'is',
'isArguments',
'isArray',
'isObject',
'isReference',
'isString',
'lift',
'lt',
'lte',
'map',
'meth',
'invoker',
'walterWhite',
'mix',
'nth',
'partial1',
'partial2',
'pipeline',
'rcurry',
'rcurry2',
'rcurry3',
'rcurry4',
'reduce',
'removeWatch',
'rot',
'setValue',
'swap',
'typed' ]
Influences / References
- Clojure and ClojureScript
- Inheritance Patterns in JavaScript by Michael Bolin
- Underscore.js
- Functional JavaScript by Oliver Steele
- Functional JavaScript (the book)
Todo
- The rest of the things
- Promises/A-compatible functions (http://wiki.commonjs.org/wiki/Promises/A)
- Moar monadology
- Logic vars?
- Unification?
- Other things that I can't think of right now
- Generators / iterators?
- Futures?
- Laziness?
- Badass memoize
- Some data generators?
- merges
- walking
- rel alg
into
for objects- make sure that anything that works for array also works for
arguments
- Make sure I say, sequence on input and array on output
- yggdrasil
- undermine
- reb
- cljs
- tables
- bach.js
- datalog
- poems
- shape decls
- cheatsheet
- site
License
This software is provided as-is under the MIT license.