emacs-devel
[Top][All Lists]
Advanced

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

Re: cl-loop and plists vs alists


From: João Távora
Subject: Re: cl-loop and plists vs alists
Date: Mon, 26 Dec 2022 00:35:58 +0000

On Mon, Dec 26, 2022 at 12:11 AM Philip Kaludercic <philipk@posteo.net> wrote:
 
> Until you step into the real world and you have to.

Can you elaborate this point?  Is this by intrinsic necessity or due to
the "mistakes" of others. 

Nothing special to elaborate.  If a data structure is a plist and you can't
change that, and you need to manipulate it, you're in the real world.
 
Plists are "harder" to iterate, because your
steps are cddrs which is an unusual way to run over a data structure.
Same applies to adding and removing associations from a plist.  The
advantage is that they are easier to write. 

IMO the major advantage is that you can use them for lambda lists.
 
Maybe somebody knows the history here, why and where which of the two
were used.  Again, my hunch is that going by the respective strengths
and weaknesses of the two (in relation to the conventional tools), we
can give some heuristic of when it is /better/ to use which of the two.

Both alists and plists are used intensely in at least two large commercial
CL systems I have worked with.  I also see them in OSS pretty often.

I get your point, but this example is geared towards cl-loop.  It is

It was your example. I just weaked it trivially to make it slightly more
realistic.

Of course LOOP isn't for _everything_, else we wouldn't need anything else.
It's a very versatile (and very often the most performant) util and that's why
it's in the CL standard. The only thing approaching it is the ITERATE macro,
modelled directly after LOOP, but that's not nearly as widespread and IMO
not improvement enough to be worth investing the effort.

reply via email to

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