Learn yourself a lisp

A friend of mine was once interviewing an engineer for a programming job and asked him a typical interview question: how do you know when a function or method is too big? Well, said the candidate, I don't like any method to be bigger than my head. You mean you can't keep all the details in your head? No, I mean I put my head up against my monitor, and the code shouldn't be bigger than my head. —Peter Seibel, Practical Common Lisp

lisp_cycles.png

The other day I found myself browsing the internet for the quote at the start of this blog. It's a good one, I got a lot of mileage out of it in high school and university, but the exact wording eludes me from time to time. I knew it was from a Lisp textbook, but I'd forgotten which one exactly. Inevitably, I fell down a bit of a rabbit hole and eventually started narrating my endeavours to J. Here's an excerpt of said conversation:

Me listen to this goofy definition: "a list is a chain of conses in which the car of each cons is an element of the list, and the cdr of each cons is either the next link in the chain or a terminating atom".1
Me
Me …now that I've said that out loud, it makes total sense.
J yeah it does.
Me but it isn't how Learn Python in 7 Minutes would have defined it.
J

Regardless of whether or not I saved myself from sounding like an idiot, my unconscious attitude here has been bothering me for reasons too difficult to explain. But have some advice: go learn yourself a lisp! I've included a list of books I dug up in my expedition down the rabbit hole – you definitely don't need to read all of them, but most are fun to skim through.

And before anyone asks, I'm not a functional purist by any means, I can barely function on a good day, I just think everyone should experience the joys of microdosing on a macro once in a while :)

1. Resources

2. Projects

These projects are super cool and good! This list is a bit sad though, so please ping me about your favourite lisp project if you have one.

Footnotes:

1

this is how the List class is defined in http://clhs.lisp.se/Body/t_list.htm

Date: 2023-09-01 Fri 00:00

Created: 2023-10-22 Sun 04:34

Validate