Briefly revisiting Land of Lisp
A couple months ago I was surprised to read in a couple places that the book Land of Lisp was "much maligned". This was surprising because it has high reviews on Amazon and GoodReads, and I personally liked it overall too. I remember getting it not long after it came out, Christmas of 2010, but I didn't really make time to read it much. I was busy with college and my job, and at some point I got more hooked on Clojure and didn't want to look at things through the "old and crufty" CL lens. I wish I kept track better of my progress milestones. I remember going through a section of it years later with my cat occasionally resting on a page. For various outside the book reasons though I just didn't get around to making the final push to finish it until 2018.I had one major critique, which was the author seems to have a stylistic preference that I don't share. Namely, his Lisp code is more "Scheme-like" than Common Lisp-like, and more emphasizes functional programming (mostly in the closures + higher order functions sense, not so much the immutability sense, and ignores the static typing sense). To quote from my own thoughts after reading that I still agree with:
The main critique I'd offer would be that perhaps functional style was emphasized too much, much of the code felt like what I'd expect to see if a Scheme or Clojure programmer was forced to write in Common Lisp. (So it didn't actually feel "sticky" to the brain and writing Lisp afterwards I still look basic things up.) Specifically, the over-frequent use of inner functions via 'labels for closure benefits rather than separate helper functions with a couple extra params (or generic methods on objects...), recursion (and often not tail-recursion) instead of various looping facilities, and raw car/cdr and their (admittedly useful) mutant forms rather than some structs or CLOS objects to help hide that. I just can't remember that the caddr of our "data structure" is always some particular thing, I'd like a get-thing that does the caadr/caddr/whatdr.
See Full Post and Comments
Recent Posts
2025-07-07
2025-03-15
2025-03-03
2025-02-13
2025-01-14