LearnSoftware engineeringCompilers and interpretersBuilding a Lisp Interpreter in Go Overview: Building a Lisp Interpreter in Go Part 1: The Shape of Lisp Part 2: Tokenizing and Reading Part 3: Environments and Evaluation Part 4: Special Forms and Closures Part 5: Derived Forms and the REPL Part 6: Tail-Call Optimization Last updated April 19, 2026