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

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

bug#23105: 25.0.92; map-put does not change its argument MAP


From: Sho Takemori
Subject: bug#23105: 25.0.92; map-put does not change its argument MAP
Date: Sat, 26 Mar 2016 00:20:49 +0900

OK. Thanks for the reply.


2016-03-26 0:14 GMT+09:00 Nicolas Petton <nicolas@petton.fr>:
Sho Takemori <stakemorii@gmail.com> writes:

> Thanks for the fix. But after the fix, if MAP is a list literal, then it
> raises an error.
> For example, this raises an error.
> (map-put '((a . 1)) 'a "value")
>
> This works.
> (map-put [0 1 2] 1 "value")
>
> It is an expected error?

Yes, in the sense that the same error will be raised if you try to do it
with a setf on an alist:

(setf (alist-get 'b '((a . 1))) 3) ;; => invalid-function (a . 1)

(let ((alist '((a . 1))))
  (setf (alist-get 'b alist) 3)) ;; => works fine

Note however that mutating literal lists is in general not a good idea,
as conses might be shared.

Nico


reply via email to

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