Subject: Re: bug#75170: add-to-alist: new function

From: Robert Pluim <[email-masked]>
Date: Tue, 21 Jan 2025 09:22:23 +0100

>>>>> On Mon, 20 Jan 2025 15:40:48 -0600, Stefan Kangas <[email-masked]> said:

    Stefan> I'm curious to hear more opinions about `map-put!`.  I'm also copying in
    Stefan> Stefan Monnier, who added that function (or at least named it).

map-put! does not work well with alists that are not 'proper':

    ELISP> (setq x (list 1 '(2 . 3)))
    (1 (2 . 3))

    ELISP> (map-put! x 2 4)
    4
     (#o4, #x4, ?\C-d)
    ELISP> x
    (1 (2 . 3) 2 4)

    ELISP> (alist-get 2 x)
    3
     (#o3, #x3, ?\C-c)
    ELISP> (setf (alist-get 2 x) 5)
    5
     (#o5, #x5, ?\C-e)
    ELISP> x
    (1 (2 . 5) 2 4)

If the intent is to have something thatʼs easy to use and footgun-free
for beginners, then I donʼt think `map-put!' is it.

Robert
--