GNU bug report logs -
#21915
write inconsistent about #nil
Previous Next
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
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 correspondence between
equal? and matching of written representation. Admittedly those standards
are not absolute, nor is the extent to which they're expected to hold
documented, but #nil is clearly sufficiently atomic to be the kind of
value to which one would expect them to apply. For these reasons,
if a consistent behaviour is to be chosen, I think it should be to
consistently distinguish the values.
I think the behaviour should be consistent. The values should be
distinguished or not without regard to the context in which they arise
within an s-expression.
Whatever is done, even if it's to endorse the inconsistency, the behaviour
should be documented, with rationale.
-zefram
This bug report was last modified 4 years and 30 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.