The Jest Programming Language
Something went wrong. Try again.
README.md
Jest Tutorials #
Three learning tracks, each building on the previous within its track. Tracks can be entered independently.
Track A: Jest for Programmers #
For people who know programming but not Lisp.
- JSON is Code — JSON values as programs, function calls, variables
- Functions and Patterns — fn, match, inverse evaluation
- Thinking Without Mutation — recursion, fold, map/filter
Track B: Jest for Lispers #
For people who know Lisp but want to see what's different.
- Operatives and Macros — vau/wrap, Kernel-style foundations
- Generic Dispatch — CLOS-style multiple dispatch in JSON
- Relational Programming — miniKanren, running programs backwards
Track C: Jest for Haskellers #
For people who know Haskell and want to see why Jest is (aspirationally) just as powerful.
- Types as Values — deftype, normalizers, refinement types
- The Type Checker — refinements, intervals, Brzozowski shapes
- Proofs as Programs — Curry-Howard in JSON
Running the Examples #
cargo build --release
jest -e '{"your": "program here"}'
# or
jest your-file.jst