Projects
View on GitHub
fogus/lemonad
fogus/lemonad has 660 GitHub stars and 29 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 13:59 UTC. Last push 2026-07-29.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
a functional programming library for javascript. an experiment in elegant JS.
Developer ToolsREADME.md
Originallemonad
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' ]
Development 💡
To set up the project for development and install dev tools run:
npm install
This installs production dependencies and devDependencies (including Jest).
Running tests ✅
- Run the entire test suite:
npm test
- Run a single spec file:
npx jest test/specs/<name>.spec.js
- Run Jest in watch mode while editing:
npx jest --watch
Notes:
- Tests are powered by Jest. Spec files live under
test/specs/*.spec.js. test/jest.setup.jsexposes the library globalLso existing specs continue to work.
Generating annotations
npx docco -o docs/site lib/lemonad.js
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
intofor 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.