On Thu 19 May 2011 18:51, Alex Shinn <[email protected]> writes: > On Thu, May 19, 2011 at 8:55 AM, Andy Wingo <[email protected]> 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 [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
