That book is a little bit controversial. Here is the main criticism leveled at it: https://gist.github.com/no-defun-allowed/7e3e238c959e27d4919...

> The interpreter uses very dubious implementation decisions, and the language that is created as a side-effect makes reasoning about anything near impossible.

Personally I really like the writing style of the book and had fun following it BUT you definitely shouldn't use it as your primary source to learn about these things.You need to do you own research and figure out why some ideas presented in the book are dead-ends that should be avoided.

It is definitely NOT a useful for those who want to learn the proper way to implement a Lisp, especially a non-toy one.

Alternatives are Crafting Interpreters by Robert Nystrom and MAL (Make your own Lisp). Here is also a good-short tutorial how to write one in OCaml: https://bernsteinbear.com/blog/lisp/00_fundamentals/

Edit: Updated link to the criticism.

My favorite language implementation tutorial is "An Incremental Approach to Compiler Construction" by Abdulaziz Ghuloum: http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf

What makes it stand out is that it shows you how to build a compiler rather than an interpreter, and shows that it's really not that much more difficult.

There is a book-length "sequel" to this paper that goes into more detail: https://github.com/IUCompilerCourse/Essentials-of-Compilatio...