GNU bug report logs - #75170
add-to-alist: new function

Previous Next

Package: emacs;

Reported by: Roland Winkler <winkler <at> gnu.org>

Date: Sun, 29 Dec 2024 05:35:02 UTC

Severity: wishlist

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Kangas <stefankangas <at> gmail.com>
Cc: 75170 <at> debbugs.gnu.org, rpluim <at> gmail.com, acorallo <at> gnu.org, winkler <at> gnu.org, monnier <at> gnu.org
Subject: bug#75170: add-to-alist: new function
Date: Tue, 21 Jan 2025 22:30:12 +0200
> From: Stefan Kangas <stefankangas <at> gmail.com>
> Date: Tue, 21 Jan 2025 13:41:17 -0600
> Cc: rpluim <at> gmail.com, acorallo <at> gnu.org, 75170 <at> debbugs.gnu.org, monnier <at> gnu.org
> 
> >> add-to-list checks for the presence of an element in a list.  In the
> >> case of alists, this means it checks for the presence of associations.
> >> You cannot easily modify an existing association with add-to-list.  If
> >> you have an alist with association (foo . bar) and you call add-to-list
> >> with an element (foo . baz), add-to-list will not remove the association
> >> (foo . bar), but the alist will then contain both associations.
> >>
> >> add-to-alist checks for the presence of keys and it makes sure that each
> >> key appears only once in an alist.  By default, it replaces the value of
> >> an existing key.  This makes it easy to modify an existing association.
> >> Only with the optional arg NO-REPLACE non-nil, it will preserve an
> >> existing association.
> 
> I believe that the "contains both associations" part is what will risk
> confusing some users.  It's not a given that they know that the first
> one is the one that will be used.  It could just as easily have been the
> last one, for example.

And yet add-to-list is exactly what we tell users to use, see the node
(emacs) Frame Parameters.




This bug report was last modified 143 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.