[plt-scheme] Please help test version 359.100
On Nov 13, 2006, at 5:31 PM, Robby Findler wrote:
> Is "some object" allowed to be multiple values or not? That text
> suggests not.
"Types are associated with values (also called objects) rather than
with variables" (section 1.1) seems to be the only definition of what
an 'object' is. I think it's clear that they are saying that values
are also called objects, and that by the normal rules of English we
can conclude that the singular 'object' means the same thing as the
singular 'value'. So the question becomes, are multiple values the
same thing as a single value? The report seems to think not (I'm
going here by the descriptions of the values and call-with-values
functions in section 6.4), though it plays its usual trick of simply
not defining what happens if a context expects a single value and it
receives multiple ones.
Applying this back to the original question, I think we have to
conclude that for-each is supposed to be able to be called in
contexts that expect exactly one value. In Schemes like PLT Scheme
where contexts that expect one value signal an error if they receive
some other number, then it's a violation of R5RS for for-each to
behave the way 359.100 did; but for Schemes like Bigloo that have
coercion rules that take a multi-value return to a single-value
context, it's not a violation.
-jacob
(I actually wrote up a version of this before and then deleted it,
thinking it was too technical for anybody to care about ... looks
like I was wrong. :) )