Claude-skill-registry lea

Use when writing or modifying Lea code - pipe-oriented functional language with tree-walk interpreter

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/lea" ~/.claude/skills/majiayu000-claude-skill-registry-lea && rm -rf "$T"
manifest: skills/data/lea/SKILL.md
source content

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