A tiny language with room to grow

Small syntax.
Big ideas.

Sprout is a friendly little programming language for learning how interpreters work—or simply enjoying code without the noise.

$npm start -- hello.sprout
fibonacci.sproutSPROUT
grow fib(n) {
  branch (n <= 1) { harvest n; }
  harvest fib(n - 1) + fib(n - 2);
}

each (plant n in range(8)) {
  bloom("fib(${n}) = ${fib(n)}");
}
OUTPUT

fib(0) = 0
fib(1) = 1
fib(2) = 1
fib(3) = 2
fib(4) = 3
fib(5) = 5
fib(6) = 8
fib(7) = 13

Delightfully small

A readable syntax you can understand in an afternoon.

Batteries included

Functions, lists, objects, loops, modules, and useful built-ins.

Built to explore

A compact TypeScript interpreter that invites tinkering.

LEARN BY DOING

Plant an idea.
Watch it grow.

plant a value, grow a function, branch through a decision, and bloom the result. The whole language speaks Sprout.

Explore the language guide