A very rich man, on being denied a bank account available only to the extremely rich by a bank which serves only the extremely rich:
Squealy whine squealy squealy whine cancelled squeal whinge moan
An even richer man, on hearing about this outrage:
Squealy squealy no one should be barred from using basic services for their political views whine squeal probe shock
A halfwit, joining in:
Whine whine exposes the sinister nature of much of the diversity, equity and inclusion industry squeal tantrum blob politically biased dogma whine round up the foreigners squeal small boats elite
All together:
Squealy squeaky SQUEAL whine outrage basic services for the very rich whine squealy cancel culture elite blob squeal
I love the sound of entitled plutocrats whining in the morning. It smells like … victory.
Yesterday I wrote an article describing one of the ways traditional Lisp macros can be unhygienic even when they appear to be hygienic. Here’s a horrible solution to that.
It’s tempting to think that by being sufficiently careful about names bound by traditional Lisp macros you can write macros which are hygienic. This is not true: it’s much harder than that.
An article constructed from several emails from my friend Zyni, reproduced with her permission. Note that Zyni’s first language is not English.
There is what I think is a confusion as to bound declarations in the Common Lisp standard. I may be wrong about this, but I think I’m correct.
In a previous article my friend Zyni wrote some variations on a list-flattening function, some of which were ‘recursive’ and some of which ‘iterative’, managing the stack explicitly. We thought it would be interesting to see what the performance differences were, both for this function and a more useful variant which searches a tree rather than flattening it.
Very often people regard the stack as a scarce, expensive resource, while the heap is plentiful and very cheap. This is absurd: the stack is memory, the heap is also memory. Deforming programs so they are ‘iterative’ in order that they do not run out of the stack we imagine to be so costly is ridiculous: if you have a program which is inherently recursive, let it be recursive.
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.