Lispex is a Lisp for decisions that should be easy to read again. A rule is ordinary text. The same source and input produce the same observable answer, and the result can stay shaped like data instead of disappearing inside an application.
See the shape first
A Lispex program is built from values and parenthesized forms. In an evaluated form, the first name says what to do and the remaining expressions supply the inputs.
(+ 2 3)Result
5Nesting reads from the inside out. Below, define puts a name on a value, >=
answers a question, and if selects one of two data values.
(define total 62)
(if (>= total 50)
'(decision free-shipping)
'(decision standard-shipping))Result
(decision free-shipping)The leading quote in '(decision free-shipping) means “keep this list as
data.” Without it, Lispex would try to call a procedure named decision.
That central distinction, that forms can be executed or preserved as data, is one
of the useful ideas you will learn gradually.
What Lispex is good at
Lispex fits rules such as eligibility checks, refund windows, pricing boundaries, routing choices, and repeatable transformations. Its reference runtime relies on deterministic evaluation rules, exact arithmetic where possible, and stable diagnostics. These properties make a rule easier to rerun and compare.
Lispex is a dedicated language for deterministic decision logic. It evaluates self-contained rules with no hidden network calls, clocks, random values, or package imports. Your application supplies the input and decides what to do with the returned value.
Choose your entrance
| If you want to… | Go here |
|---|---|
| learn the language in six steps | Learning Path |
| run code without installing anything | Playground |
| study SICP chapter by chapter by reading, editing, and running code | Lispex · SICP course |
| scan the everyday syntax on one page | Syntax at a Glance |
| install a local runtime | First Program |
| build and run a verified Native artifact | Run Verified Bytecode |
| look up an exact form or procedure | Syntax Reference or Procedure Index |
Exact Lispex Images, verified Native bytecode, and Lispex Vouch are real product features, but none is a prerequisite for learning the language. Images carry exact source. Bytecode gives you an explicit local route through a virtual machine. Lispex Vouch checks a recorded decision later. It authenticates who signed a rule, binds your own copy of the source and input, and can require one exact local decision. Learn the language first. Those paths will make more sense afterward.
Running a rule you do not trust
Standard Lispex execution runs trusted source directly in memory. This direct
model powers the multi-route tools and the authoring evaluation offered by
lispex mcp serve.
For rules that use a configured resource profile, the downloadable program
offers lispex embed. It evaluates the decision profile under deterministic
CPU fuel and memory values within the host process and produces a portable core
record when execution completes.
A useful promise
The manual presents exact product capabilities and verified boundaries. Rust is the reference runtime. Topaz is a companion language and compiler used for a Topaz virtual machine and an AOT toolchain that compiles a rule ahead of time into a standalone program. LIL (Lispex in Lispex) and LIT (Lispex in Topaz) operate as differential verification backends. You can explore these components in Runtime and Backends when deployment or cross-checking matters.
Words this documentation reuses
A handful of words repeat across the manual, the guides, and the release history. You do not need any of them for the course.
| Word | What it means |
|---|---|
| evaluator | the program that runs the rule |
| tree | the built-in interpreter that reads your source directly |
| VM | a virtual machine, a program that runs prepared instructions instead of reading your source |
| AOT | ahead-of-time compilation, which turns a rule into a program before anyone runs it |
| canonical | written the same way every time, so the same input gives the same bytes |
| resource profile | the exact work and memory values assigned to a run |
| meter | the counter that measures how much work a run used |
| route | one way of running a rule |
| route lock | a file that records which route was chosen independently from where that product sits on the machine |
| portable core | the record that binds the rule, the input, the limits, and the outcome of one run |
| receipt | a written record of what one run or one installation produced |
| court | one run of checks gathered into a single verdict |
| surface | a place where Lispex is offered, such as Native, npm, the WebAssembly build, or the Playground, while the surface of the language means the part of the language that is covered |
| Topaz | A separate language and its compiler. Lispex uses it as a Topaz virtual machine that runs prepared instructions and as an AOT toolchain that compiles a rule ahead of time into a standalone program |
| LIL | A Lispex interpreter written in Lispex |
| LIT | A Lispex interpreter written in Topaz |
| WASM | the WebAssembly build |
Ready? Open the Learning Path, or go straight to the First Program if you prefer to learn by running code.