On 14.05.2021 15:34, Taylan Kammer wrote:
>
> It might also be good, in addition, to make the Scheme writer
> write (foo . #nil) as (foo . #nil). The positive is that it
> would make bugs in Elisp compatibility easier to see by not
> masking the fact that one has #nil instead of () at the end
> o
Hi Zefram,
this is an interesting issue. Here's a related one:
https://bugs.gnu.org/48318
I think first of all #nil and '() should actually be equal?
to each other. After all, both represent the empty list,
and checking structural equality between lists is one of the
common uses of equal?.
The write function is inconsistent about whether it distinguishes between
#nil and ():
scheme@(guile-user)> '(#nil . a)
$1 = (#nil . a)
scheme@(guile-user)> '(a . #nil)
$2 = (a)
Thee latter behaviour, emitting #nil as if it were (), breaks the usual
write/read round-tripping, and the traditional