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

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

Iteration macros (was: [External] : Re: Closures - do you understand the


From: Stefan Monnier
Subject: Iteration macros (was: [External] : Re: Closures - do you understand them well?)
Date: Sat, 10 Dec 2022 13:02:26 -0500
User-agent: Gnus/5.13 (Gnus v5.13)

> 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 what I meant, actually, yes.

I'm not opposed to introducing specialized sublanguages (after all, I've
done that myself for `pcase`, `setf`, and `bindat`, and I'm not opposed
to things like `rx` or `peg`), but I think what annoys me in `cl-loop`
is that you cannot understand each subelement independently because the
effect of each element often depends on the presence/absence of other
elements or the place where it appears, ...: it's not just a separate
language but that language is not modular (and hence in my view is a bad
language design).

Shiver's [Anatomy of
a Loop](https://www.ccs.neu.edu/home/shivers/papers/loop.pdf) is much
better in this respect, but I'm still not a big fan because for example
(bind <bindings>) changes the environment of *subsequent* expressions,
which I find ugly (admittedly, he does that in Scheme where `define`
already suffers from the same problem).


        Stefan "who votes for `named-let` :-)"




reply via email to

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