My friend Zyni wrote a comment to a thread on reddit with some variations on a list-flattening function. We’ve since spent some time thinking about things related to this, which is written up in a following article. Here is her comment so the following article can refer to it. Other than notes at the end the following text is Zyni’s, not mine.
Everyone who has written Lisp has written tiny Lisp evaluators in Lisp: here are two more.
In Common Lisp, dynamic bindings and lexical bindings live in the same namespace. They don’t have to.
The first rule of understanding closures is that you do not talk about closures. The second rule of understanding closures in Common Lisp is that you do not talk about closures. These are all the rules.
I’d like to believe there was some purpose in writing to my MP, but I no longer do. He probably means well, but his soul has been sold, if he ever had one.
I often find myself wanting a simple case
-like macro where the keys are regular expressions. regex-case
is an attempt at this.
My friend Zyni pointed out that someone has been getting really impressively confused and cross on reddit about empty lists, booleans and so on in Common Lisp, which led us to a discussion about what the differences between CL and Scheme really are here. Here’s a summary which we think is correct.
The various Stack Exchange sites, and specifically Stack Overflow, seem to be some of the best places for getting reasonable answers to questions on a wide range of topics from competent people. They would be a lot better if they were not so obsessed about closing duplicates.
Or, the calls are coming from inside the house.
What follows is an opinion. Do not under any circumstances read it. Other opinions are available (but wrong).