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

[Scheme-reports] "the result is unspecified" vs "unspecified values"

I think the R6RS did the right thing in allowing e.g. `(set! foo 10)' to
result in 0 values, and that R7RS did the wrong thing in reverting to
the R5RS "the result is unspecified".  Some expressions just don't have
useful values, and forcing implementations to produce a value in that
case hides bugs, producing programs with less meaning.

To make an analogy: why encourage programs to detect the letrec
restriction, while preventing them from detecting places that treat an
"unspecified value" as a real, useful value, as is the case when an
unexpected number of values is returned to a continuation?  The least
the specification could do on this point would be to _allow_
implementations to signal an error in this case.

Anyway, I feel that the WG made a big mistake in this regard, and wanted
to repeat my sentiments.  No need for an argument here, we've had it


Scheme-reports mailing list