[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Scheme-reports] "the result is unspecified" vs "unspecified values"
- To: scheme-reports <scheme-reports@x>
- Subject: [Scheme-reports] "the result is unspecified" vs "unspecified values"
- From: Andy Wingo <wingo@x>
- Date: Sat, 05 Jan 2013 20:10:56 +0100
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