>> .claude/skills/lea
stars: 2
forks: 0
watches: 2
last updated: 2025-12-10 15:38:23
Lea Language
Quick Start
let numbers = [1, 2, 3, 4, 5]
let result = numbers
/> filter((x) -> x > 2)
/> map((x) -> x * x)
/> reduce(0, (acc, x) -> acc + x)
result /> print
Core Principles
- Pipes:
value /> fnpasses value as first arg; useinputplaceholder to control position - Functions:
let double = (x) -> x * 2(no fn keyword) - Multi-statement bodies: Indentation-based or brace-delimited
{ } - Decorators: Trailing
#log #memo #time #retry(3)etc. after function body - Bindings:
let x = 10immutable,maybe x = 0mutable - Records:
{ name: "Max", age: 99 }with member accessrecord.field - Contexts:
context Name = default+provide Name value+@Nameattachments
Builtins
- Math:
sqrt,abs,floor,ceil,round,min,max - Lists:
length,head,tail,push,concat,map,filter,reduce,range - IO:
print(returns first arg for chaining) - Async:
delay(ms)— promise that resolves after ms
Running
npm run repl # Interactive REPL
npm run lea file.lea # Run a file
Reference Files
- references/syntax.md - Full syntax reference
- references/architecture.md - Interpreter internals
