[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
plists, alists, and hashtables (was: How to iterate over properties in a
From: |
Ted Zlatanov |
Subject: |
plists, alists, and hashtables (was: How to iterate over properties in a plist?) |
Date: |
Tue, 04 Aug 2015 06:15:27 -0400 |
User-agent: |
Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (gnu/linux) |
On Sat, 01 Aug 2015 18:49:38 -0400 Stefan Monnier <monnier@iro.umontreal.ca>
wrote:
SM> - plists need to be "parsed" in order to figure out if an element is a key
SM> or a value.
That's true, but there's some idea that a plist is "correct" if it can
be parsed. It's also visually easier to parse, I think, especially for
beginners. Also, symbol plists are pretty well ensconced at the C level.
By contrast, alists don't have a strong structure and parsing them is
not simple for beginners. For instance:
(alist-get 'a '((a) (b 1) (c . 2) d)) -> nil
(alist-get 'b '((a) (b 1) (c . 2) d)) -> (1)
(alist-get 'c '((a) (b 1) (c . 2) d)) -> 2
(alist-get 'd '((a) (b 1) (c . 2) d)) -> nil ; no error
The real map type in Emacs Lisp is the hashtable, I think. But because
of historical baggage, we end up discussing the benefits of two list
formats when used as maps. Which feels like discussing which of two
different bicycles is better for carrying 5 people.
For instance, the hashtable keys are unambiguously
(hash-table-keys my-hashtable) and there's no looping or parsing.
I wonder, if hashtables had a better reader syntax (like plists or
alists) and better Customize support, would they see wider use? Or is
the historical baggage in tutorials and existing code too much at this
point?
Ted
- plists, alists, and hashtables (was: How to iterate over properties in a plist?),
Ted Zlatanov <=
- Re: plists, alists, and hashtables (was: How to iterate over properties in a plist?), Rusi, 2015/08/05
- Re: plists, alists, and hashtables, Pascal J. Bourguignon, 2015/08/05
- Re: plists, alists, and hashtables, Ted Zlatanov, 2015/08/05
- Re: plists, alists, and hashtables, Rusi, 2015/08/05
- Re: plists, alists, and hashtables, Stefan Monnier, 2015/08/06
- Message not available
- Re: plists, alists, and hashtables, Rusi, 2015/08/07
- Re: plists, alists, and hashtables, Pascal J. Bourguignon, 2015/08/05
- Re: plists, alists, and hashtables, Ted Zlatanov, 2015/08/05