[scheme-reports-wg1] Re: [Scheme-reports] Proposed compromise on #68 "unspecified value(s)" John Cowan (29 Aug 2011 18:26 UTC)

[scheme-reports-wg1] Re: [Scheme-reports] Proposed compromise on #68 "unspecified value(s)" John Cowan 29 Aug 2011 18:26 UTC

Aaron W. Hsu scripsit:

> >         If a syntax form or procedure is specified as returning an
> >         undefined value, it is an error to store this value in a
> >         location or attempt to output it onto a stream.
>
> This would break many existing Schemes and I don't think it's going to
> help us any. It's more invasive than multiple, unspecified values, and I
> don't see it as giving us any benefits. We've already voted that all of
> the built-in procedures return a single unspecified value, I don't think
> we need to hammer this out further, despite the fact that I wish we had
> gone with the R6RS approach of allowing unspecified values instead of just
> a single value.

"It is an error" does not mean "an error is signalled".  It's perfectly
fine for existing or future Schemes to store or output an undefined
value; it just isn't portable to do so.  So it is not invasive and breaks
nothing except user code like

        (define x (set! y 32))

which has no portable meaning in any case (it will not work in Racket, e.g.).

--
Where the wombat has walked,            John Cowan <cowan@ccil.org>
it will inevitably walk again.          http://www.ccil.org/~cowan
   (even through brick walls!)