---------------------------------------- Speaking with a Lisp September 07th, 2020 ---------------------------------------- As mentioned in my previous post, I have been experimenting with Forth. It has been fun to make tiny little programs, especially since I've been working on 64Forth[1] to mess around with PETSCII graphics drawing. However, it was never meant to be something other than an exercise in trying something new; expanding my horizons and discovering new ways to think about solving problems. For more practical uses, I have been turning back to Common Lisp (specifically SBCL[2]). I'm working out of the second edition printing of David S. Touretzky's "Common Lisp: A Gentle Introduction to Symbolic Computation"[3]. Before I had poked around the book at whatever chapter interested me, but this time I've taken a more methodical approach to learning -- going through it in order and doing the exercises in order. Unsurprisingly, I've gleaned a lot more from the text in this way, even if it is just a refresher on some aspecs of Common Lisp that I was already familiar with. One thing I completely missed out on was the recursion function templates, which are invaluable, and I'm surprised that those examples aren't easily found in other Common Lisp texts or tutorials. It was something I didn't pay attention to the last time through the book because of the out of place story about the dragon and the boy learning recursion because it felt too out of place and so I skipped most of that material. As a professional developer, I often end up needing to read a lot -- programming language specifications, requirements, documentation, &c. To make sure that I'm not going down a rabbit hole when dealing with these documents I've cultivated a sense of skimming which has helped in time-critical situations but as also made me less mindful of being focused when I really do need to deep-dive into reading. The casualty of not paying attention to the recursion templates section in the book seems like a casualty of that lack of focus, something that I need to stay aware of as I continue to work more out of that book. ----- As an aside, one of the biggest hurdles for me to using Common Lisp as a more regular daily driver is its namespacing and symbol handling. It's terribly confusing and complex (though I imagine for good reason) and there doesn't seem to be a whole lot of good documentation out there. Even "Practical Common Lisp"[4] has a chapter on it that feels like it barely scratches the surface. I recently bought a print version of "Common Lisp Recipies"[5] which has a significant section of the book devoted to pratical solutions to common namespacing issues that I'll look into more as I get further into Touretzky's book and start looking to write more mature software. If anyone has any other good resources for help with Common Lisp namespaces and packages, please feel free to email me at jtecca@tilde.institute. ----- [1] https://www.c64-wiki.com/wiki/64_Forth [2] http://www.sbcl.org/- [3] https://www.cs.cmu.edu/~dst/LispBook/ (the first edition PDF is available for free) [4] http://www.gigamonkeys.com/book/ [5] http://weitz.de/cl-recipes/