<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Hi Mikel,<br><div><br></div><div>Not so surprising really. I used to date a math professor who lamented about the <i>lack</i> of communication in her small department. Each professor specialized in a different branch of mathematics, and it felt like <i>no one</i> talked to each other. One difference between math and CS, is that software engineers recognize the need to communicate through well written code. I’m sure mathematicians do this too, just for a smaller audience: practitioners in their subfield. </div><div><br><div dir="ltr">--Tim</div><div dir="ltr"><br><blockquote type="cite">On Apr 15, 2023, at 11:23, mikel evins <mevins@me.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><span>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.</span><br><span></span><br><span>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.</span><br><span></span><br><span>Okay. Lesson learned. Things are not necessarily intrinsically natural and obvious to everyone. They may become that way in my mind through repeated use.</span><br><span></span><br><blockquote type="cite"><span>On Apr 15, 2023, at 10:16 AM, Tim Bradshaw <tfb@tfeb.org> wrote:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>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.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>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.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>--tim</span><br></blockquote><span></span><br><span></span><br></div></blockquote></div></body></html>