[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] strange language in spec of `and' and `or'

On Thu 19 May 2011 18:51, Alex Shinn <alexshinn@x> writes:

> On Thu, May 19, 2011 at 8:55 AM, Andy Wingo <wingo@x> 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 ;-)



Scheme-reports mailing list