• Stars
    star
    658
  • Rank 68,031 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 12 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a functional programming library for javascript. an experiment in elegant JS.

lemonad

A functional programming library for JavaScript inspired by Clojure, Haskell, SML and Forth.

lemonad

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

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.

More Repositories

1

thunks

posts and code related to personal studies
374
star
2

himera

JavaScript
278
star
3

ulithp

A micro LISP implementation in 24 lines of Ruby.
Ruby
270
star
4

papers-i-love

Computer science and computer-adjacent papers (and sometimes books) that have influenced me deeply.
261
star
5

lithp

McCarthy's Lisp in Python with macros. A celebration of 50+ years of symbolic processing.
Python
257
star
6

baysick

An embedded Insane-specific Language for Scala implementing the BASIC programming language
Scala
246
star
7

trammel

Contracts programming with Clojure
Clojure
242
star
8

bacwn

clojure + datalog = <3
Clojure
137
star
9

minderbinder

converting one thing into another thing via Clojure.
Clojure
88
star
10

codd

a relational algebra library for JavaScript
JavaScript
60
star
11

skiing

a clojure combinator zoo
Clojure
44
star
12

tori-lisp

an ersatz lisp for tiny birds. a code riff.
JavaScript
42
star
13

evalive

various eval functions and macros for use with clojure. a code riff.
Clojure
33
star
14

unfix

Infix and Postfix library for Clojure that was cut from the book.
Clojure
30
star
15

lang-genealogy

Forth
9
star
16

reinen-vernunft

Code conversations in Clojure regarding the application of pure reasoning algorithms.
Clojure
8
star
17

tathata

An implementation of Clojure pods.
Clojure
7
star
18

thneed

An eclectic set of Clojure utilities that I've found useful enough to keep around.
Clojure
5
star
19

gamut-of-games

a repository of rules for games in text formats
4
star
20

fogos

Assembly
3
star
21

russ-forth

Russforth is a teeny-tiny Forth-esque implementation in Ruby.
Ruby
3
star
22

tafl

a clojure library to manipulate and query table-like data structures.
Clojure
3
star
23

spec-experiments

Clojure
1
star
24

battlestation

a description of my home battle station
1
star
25

abs-oddity

Clojure
1
star