[Openmcl-devel] Obfuscated Lisp contest anyone? (Seriously)

mikel evins mevins at me.com
Sat Apr 15 08:23:06 PDT 2023


I like to make code as clear and obvious as I can, to the extent of building scaffolding in the language to accomplish that purpose. Of course, I don't always get it right, and sometimes my attempts to make things clearer have the opposite effect.

Sometimes those failures are because what's clear to me isn't necessarily clear to a colleague. I had a colleague a few years ago who seemed to be constitutionally averse to lambdas, to the extent that I entirely failed to communicate that I had used them in a certain place because it seemed to me the most natural and obvious way to accomplish a thing. It seemed that he so strongly believed that lambda was a weird and alien artifact that it was simply unbelievable that it could have seemed natural and obvious to me. I must be lying. I must have some hidden motive.

Okay. Lesson learned. Things are not necessarily intrinsically natural and obvious to everyone. They may become that way in my mind through repeated use.

> On Apr 15, 2023, at 10:16 AM, Tim Bradshaw <tfb at tfeb.org> wrote:
> 
> I always used to answer obvious homework questions on cll by turning all binding constructs into equivalent lambdas and then using the U combinator (which I did not know was U at the time as I'd rediscovered it myself) to express recursion as opaquely as possible.  Any iteration was obviously expressed as recursion.
> 
> This is much easier in Scheme, as all the funcalls get annoying in CL.  Creative use of call/cc is also a great advantage of course.
> 
> --tim



More information about the Openmcl-devel mailing list