GNU bug report logs - #64537
mix lists and vectors when using backquote

Previous Next

Package: emacs;

Reported by: Shynur Xie <one.last.kiss <at> outlook.com>

Date: Sun, 9 Jul 2023 05:46:01 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Stefan Kangas <stefankangas <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 64537 <at> debbugs.gnu.org, Shynur Xie <one.last.kiss <at> outlook.com>
Subject: bug#64537: mix lists and vectors when using backquote
Date: Sun, 24 Sep 2023 02:47:22 -0700
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>>> The docstring of ‘backquote’ says “vectors work just like lists”.
>>> Should we also clarify that mixing lists and vectors these 2 way:
>>>
>>>     `(... ,@[...])  ; by contrast: `(,@[] 1)  => (1)
>>>     `[,@'()]        ; by contrast: `[1 ,@'()] => [1]
>>>
>>> will lead to unexpected behavior?  Or suggest not doing so?  Or let
>>> ‘backquote’ detect this and signal an error?
>>
>> Copying in Stefan Monnier.
>
> Is there a good reason why we have those unexpected behaviors?

I see two unexpected behaviors:

  1.   `(... ,@[...])  =>  (\... . [\...])
  2.   `[,@'()]        =>  [(\,@ 'nil)]

I'd say these are the expected values:

  1.   `(... ,@[...])  =>  (\... \...)
  2.   `[,@'()]        =>  []

I don't see any good reason for them, so perhaps these are just plain
bugs to be fixed?




This bug report was last modified 1 year and 7 days ago.

Previous Next


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