Re: [Scheme-reports] strange language in spec of `and' and `or'
Andy Wingo 19 May 2011 21:19 UTC
On Thu 19 May 2011 18:51, Alex Shinn <alexshinn@gmail.com> writes:
> On Thu, May 19, 2011 at 8:55 AM, Andy Wingo <wingo@pobox.com> wrote:
>> Section 4.2.1, p. 11, in the spec of `and':
>>
>> "The TEST expressions are evaluated from left to right, and the value
>> of the first expression that evaluates to a false value (see section
>> 6.3.1) is returned. Any remaining expressions are not evaluated. If
>> all the expressions evaluate to true values, the value of the last
>> expression is returned..."
>>
>> Why these weasel words? Is this to somehow permit implementations with
>> more than one false value to return a false value from `and' which is
>> not #f ?
>
> Good point, that's possibly wording left over from
> R4RS, where #f and '() were not necessarily distinct.
>
> #f and '() could be distinct and yet there could be
> other false values (as in Guile, no?), but I'm not
> sure if we need to word the standard to accomodate
> such extensions.
Yes Guile does have a #nil which is false; but in this case the report
seems to be over-specifying (i.e. (and #nil #t) returning #nil instead
of #f).
Dunno. My suggestion would be to worry about Scheme; people with a
"nil" in their language have other problems ;-)
Cheers,
Andy
--
http://wingolog.org/
_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports