The Jest Programming Language
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.

  1. JSON is Code — JSON values as programs, function calls, variables
  2. Functions and Patterns — fn, match, inverse evaluation
  3. Thinking Without Mutation — recursion, fold, map/filter

Track B: Jest for Lispers #

For people who know Lisp but want to see what's different.

  1. Operatives and Macros — vau/wrap, Kernel-style foundations
  2. Generic Dispatch — CLOS-style multiple dispatch in JSON
  3. 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.

  1. Types as Values — deftype, normalizers, refinement types
  2. The Type Checker — refinements, intervals, Brzozowski shapes
  3. Proofs as Programs — Curry-Howard in JSON

Running the Examples #

cargo build --release
jest -e '{"your": "program here"}'
# or
jest your-file.jst