Overview of mal (Make a Lisp)
mastermal is a Clojure-inspired Lisp interpreter designed as a learning tool. It provides 11 incremental, self-contained, and testable steps that demonstrate core Lisp concepts. The final step (stepA) is capable of self-hosting, meaning it can run its own implementation of mal.
The 11 steps are:
- step0_repl: The REPL
- step1_read_print: Read and print
- step2_eval: Eval
- step3_env: Environments
- step4_if_fn_do: If, fn, and do
- step5_tco: Tail call optimization
- step6_file: Files, mutation, and evil
- step7_quote: Quoting
- step8_macros: Macros
- step9_try: Try
- stepA_mal: Metadata, self-hosting, and interop