(github.com) kanaka/mal: mal - Make a Lisp
ROAM_REFS: https://github.com/kanaka/mal
- mal - Make a Lisp
** Description
1. Mal is a Clojure inspired Lisp interpreter
2. Mal is a learning tool
Each implementation of mal is separated into 11 incremental, self-contained (and testable) steps that demonstrate core concepts of Lisp. The last step is capable of self-hosting (running the mal implementation of mal). See the make-a-lisp process guide.
The make-a-lisp steps are:
- step0repl
- step1readprint
- step2eval
- step3env
- step4iffndo
- step5tco
- step6file
- step7quote
- step8macros
- step9try
- stepAmal
Each make-a-lisp step has an associated architectural diagram. That elements that are new for that step are highlighted in red. Here is the final architecture once step A is complete:
[[https://github.com/kanaka/mal/raw/master/process/steps.png]]
If you are interested in creating a mal implementation (or just interested in using mal for something) you are welcome to to join our Discord. In addition to the make-a-lisp process guide there is also a mal/make-a-lisp FAQ where I attempt to answer some common questions.
3. Mal is implemented in 89 languages (95 different implementations and 118 runtime modes)