help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [External] : Re: Closures - do you understand them well?


From: Drew Adams
Subject: RE: [External] : Re: Closures - do you understand them well?
Date: Sat, 10 Dec 2022 17:20:47 +0000

> > Indeed, when I looked at it, I decided it was too much
> > trouble figuring out how to change `cl-loop` to provide that
> > behavior :-( IMO `cl-loop` is too complex for its own good.
> 
> All of Lisp is, and the reason is it's so simple to begin with ...

Most likely Stefan meant that the code implementing
`cl-loop' is complex - even too complex for its own
good (it's a bother to maintain/improve/correct).

But it's also the case that for a _user_ the syntax
of `(cl-)loop' is complex - certainly much more
complex than the usual Lisp syntax.  You essentially
have to learn another language - `loop' - to use it.

That's one of the arguments in favor of using macro
`iterate' instead: its syntax is more "lispy".

Users can of course learn the language of `loop',
just as they can learn the language of Unix `find',
and just as they can learn the language (patterns)
of regular expressions, or those of `pcase'.

And for the simplest, most common `loop' cases they
need not learn/memorize everything in the language.

Nevertheless, it remains true that a second/separate
language is introduced.  That can present advantages
(code can often look like simple English commands),
but it also presents disadvantages.

It's largely a question of taste/style, and
"Des goƻts et des couleurs, on ne discute pas".

https://dictionary.reverso.net/french-english/des+go%C3%BBts+et+des+couleurs+on+ne+discute+pas

On the other hand, Occam might have something to
say here about multiplying things unnecessarily.

https://en.wikipedia.org/wiki/Occam%27s_razor

(The rule behind Occam's taste & color preferences,
perhaps, but a good rule of thumb nevertheless.
The taste question comes in when deciding just
which multiplying is "unnecessary".)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]