lambda-chop
Sweet.js macros for lambdas with currying, bound functions, and placeholders.
Install
npm install -g sweet.js
npm install lambda-chop
sjs -m lambda-chop/macros myfile.js
Features
Lambda-chop provides a macro λ
which you can use to create terse, 'stabby'
lambdas, much like CoffeeScipt and ES6, but with some extra features:
->
for unbound functions=>
for bound functions usingFunction::bind
- Tupled arguments
- Curried arguments
- Partials with placeholders
- Shorthand property lambdas
Examples
// Create unbound functionsvar add = -> x + y; === 3; // Create bound functionsDB; // Curry functions by leaving off the tupled argumentsvar always = λ x y -> x;12 === 42; // Mix and match for multiple argument listsvar nonsense = s t f -> 42; // Placeholders using square brackets and `#`var str = λ#;var sub = λ# - #; === 1; // Shorthand property lambdasvar names = arr;
Placeholder partials are never curried or bound, and are always expressions.
λ
?
Can I Use Something Other Than Yes! Not everyone likes it or wants to type it. Lambda-chop provides aliases by using a different module to compile your files.
# Use `fun` instead of `λ`
sjs -m lambda-chop/macros/fun myfile.js
Available aliases are:
fn
fun
func
lam
Author
Nathan Faubion (@natefaubion)
License
MIT