Elle Programming Language

Welcome to Elle

Elle is a Lisp. What separates it from other Lisps is the depth of its static analysis: full binding resolution, capture analysis, and signal inference happen at compile time, before any code runs. This gives Elle a sound signal system, fully hygienic macros, colorless concurrency via fibers, and deterministic memory management — all derived from the same analysis pass.

What Makes Elle Different

Quick Example

A fiber yields progress updates; the parent drives it to completion:

(defn process-items [items]
  (each item items
    (emit :progress {:item item :result (* item item)})))

(def f (fiber/new (fn [] (process-items [1 2 3])) |:progress|))

(forever
  (fiber/resume f)
  (if (= (fiber/status f) :paused)
    (print "progress:" (fiber/value f))
    (break)))

When the fiber finishes, its entire heap is freed in O(1).

Documentation

Elle ships with comprehensive design documents and runnable examples: