Re: #f vs. '() vs. nil
Paul R. Wilson (wilson@cs.utexas.edu)
Fri, 6 Sep 1996 15:17:22 -0500
>From guile-owner@cygnus.com Fri Sep 6 14:58:52 1996
>Subject: Re: #f vs. '() vs. nil
>
>>On the other hand, Scheme has distinct objects for all three uses: the
>>symbol `nil' has no special significance, the empty list is written
>>'(), and the special object #f is false. (It's the only false object,
>>in fact; all other objects are true in Scheme, including the empty
>>list.)
>
>I believe that the last sentence is not entirely correct. It is
>effectively UNSPECIFIED, whether or not the empty list is the false
>object or not. I recall Dr. Wilson pointing this out already some
>time ago. Please see the excerpts from R4RS enclosed for easy
>reference below.
I think I may have been wrong about this, and someone corrected me.
I think it has been said that the R5RS will make it clear that that
'() and #f must be distinct objects.
Unfortunately, I can't seem to get my hands on a copy of the draft
R5RS. The best approximation seems to be the new edition of Dybvig's
book _The_Scheme_Programming_Language_, which confidently talks about
things that "will be in R5RS". Sigh.
Personally, I'm in favor of making them distinct, if a reasonable
way to do that can be found. I haven't had time to think hard
about Jim's proposal, which is why I haven't commented on it.