I've been #reading the #Lisp in Small Pieces book, and it has helped me put names to a lot of concepts that I knew about Lisps and programming language design/implementation in general. It also provides a great historical perspective to #PLT, especially by mentioning all approaches that were tried but abandoned.
But other than being very very verbose, I find it hard to understand because it keeps changing the model of the #interpreter every chapter. It starts with using Alists to model environments, then uses objects in the next chapter for the same, and in the next one, switches to using closures.
I get that it does this to showcase all possible ways of modelling an interpreter in Lisp, but it is quite disorienting to me as a reader.