[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#21915: write inconsistent about #nil
From: |
Zefram |
Subject: |
bug#21915: write inconsistent about #nil |
Date: |
Sat, 14 Nov 2015 01:46:56 +0000 |
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#21915: write inconsistent about #nil,
Zefram <=