Want this course?
Our Lisp Interpreter Begins
Lisps are wonderfully simple languages. Writing one will teach you the basics of recursive evaluation and how to build a Turing complete language while leaning on the host language.
You can view the state of the repo at the beginning of this lesson (before I start typing) at the
$CMD git clone firstname.lastname@example.org:lispcast/domain-specific-languages-in-clojure.git $CMD cd domain-specific-languages-in-clojure $CMD git checkout -f 008-before
Code is available: lispcast/domain-specific-languages-in-clojure
Code for this particular lesson is available at the
008-after tag .
You can checkout the code in your local repo with this command:
$CMD git clone https://github.com/lispcast/domain-specific-languages-in-clojure.git $CMD cd domain-specific-languages-in-clojure $CMD git checkout -f 008-after
Function calls in Crisp interpreter
Central to Lisp is the ability to call functions. We are building a language hosted on Clojure, so we will want to call Clojure functions to be able to borrow what's already there. What's more, we will want to define our own functions in Crisp, so we develop a way to do that. All with TDD!