lisp-rs
A simple Lisp interpreter in Rust. The interpreter was developed as a teaching aid to explain how Lisp interpreters work and how can they be implemented using the Rust programming language. The interpreter is in no way close to production and might change from time to time.
The interpreter has been implemented in three phases across different branches.
- Phase I: Complete interpreter and REPL implementation with support for basic data types (integers and boolean), variables, lambdas, and lambda calls (branch 0.0.1)
- Phase II: Support for advanced data types (string, float, and lists) and functional constructs (branch 0.0.2)
- Phase III: Support for closures and tail call optimization (branch 0.0.3)
For a detailed code-walkthrough about Phase-I implementation refer to the docs. For code-walkthrough of all the phases, get the e-book.