Good AI Tools

>> .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 /> fn passes value as first arg; use input placeholder 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 = 10 immutable, maybe x = 0 mutable
  • Records: { name: "Max", age: 99 } with member access record.field
  • Contexts: context Name = default + provide Name value + @Name attachments

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