About
This blog is about my journey through the paradigms of computer programming to the heart of the computation problem, and back again. I will be using various dialects in the venerable Lisp family to illustrate key concepts and implementation strategies for building serious software.
Why Lisp? In short, because Lisp is the original executable and fully extensible language of the lambda calculus, with the simplest and most sublime syntax yet invented, enabling almost any semantics you can imagine. Everybody should learn it, and I believe everybody should use it at least once to build something non-trivial. If "doing something in Lisp" is on your bucket list, you've come to the right place!
(And don't worry, you won’t be alone: I'll show you all the other secret places people like us lurk in plain sight!)
Executable means every expression (more precisely, every tree of expressions) evaluates to a value. Extensible means it has unique, built-in syntactic support for molding it into the language you need it to be, for any given task. Both points are subtle, but the latter is an especially big "Aha!" moment when it hits you.

