An interactive web application for exploring the untyped lambda calculus. Built for CIS352 at Syracuse University.
Enter lambda terms, click subterms to reduce them, and explore different reduction paths through a branching derivation tree.
?term=... parameternpm install
./build.sh # builds WASM + TypeScript
cd www && python3 -m http.server 8080
# open http://localhost:8080
For development with auto-rebuild:
npm run watch # recompiles TypeScript on save
| Layer | Tech | Source |
|---|---|---|
| Core logic | Rust -> WASM | src/ (term, parser, render, WASM API) |
| Frontend | TypeScript (strict) | www/src/app.ts, www/src/types.ts |
| Bundler | esbuild | esbuild.mjs |
| Styles | CSS (custom properties) | www/style.css |
109 Rust tests (cargo test). TypeScript type-checks with npm run check.
The tutorial system supports custom interactive slide decks. Add slides to the TUTORIAL_STEPS array in www/src/app.ts – each slide can load a term, auto-step, demo strategies, or run convergence proofs.
See docs/TUTORIAL_AUTHORING.md for the full authoring guide.
variable: x, y, foo
abstraction: (λ (x) body) -- also \ or lambda
application: (e1 e2)
multi-param: (λ (x y z) body) -- curried sugar
multi-app: (f a b c) -- left-associative sugar
ISC