GOPHERSPACE.DE - P H O X Y
gophering on tilde.institute
----------------------------------------
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/