Lisp is one of those interesting computer languages that you either love or hate. But it has certainly stood the test of time. Of all the ancient languages that are still in practical use, only FORTRAN is older, and only by one year. If you ever wanted to learn Lisp, [Kanaka] has an interesting approach: Study how to build your own Lisp in your favorite language.
What if your favorite language is something obscure? [Kanaka’s] GitHub page has no fewer than 64 different implementations of Mal (Make a Lisp), each in a different language. Unsurprisingly, C and Python are on the list. However, so is Forth and Go and Awk. Not strange enough for you? How about Make? Yes, Make, like you use to build programs. Bash, Postscript, and even VHDL have entries, although–surprisingly–no Verilog; we don’t know why.
Each implementation of Mal is separated into eleven incremental, self-contained, and testable steps that demonstrate core concepts of Lisp. The last step can actually run a copy of itself–typical for a mind-bending language like Lisp. There is a guide to help you navigate through the process in the language of your choice. The suggestion is to not look at the code in the repository until after you’ve written it yourself. You can see [Kanaka] (also known as [Joel Martin]) giving a recent talk about the Mal process in the videos below.
If you haven’t used Lisp, you might think it stands for “lots of irritating spurious parenthesis” instead of “list processing.” If you use emacs, you’ve been using Lisp for a long time. Supposedly at least some incarnation of Reddit, Orbitz, and Yahoo Store all used Lisp. We’ve even seen Lisp on microcontrollers and Raspberry Pi operating systems.
Although learning Lisp by building is a lofty goal, we couldn’t help but think that this repository might be useful for people who just want to compare programming languages. We also couldn’t help but think of JONESFORTH, which has taught a lot of people Forth by building a Forth interpreter.