[Scheme-reports] "unspecified values" Andy Wingo (19 May 2011 15:49 UTC)
Re: [Scheme-reports] "unspecified values" Alaric Snell-Pym (19 May 2011 16:11 UTC)
Re: [Scheme-reports] "unspecified values" Andy Wingo (19 May 2011 17:11 UTC)
Re: [Scheme-reports] "unspecified values" Alex Shinn (21 May 2011 05:04 UTC)
Re: [Scheme-reports] "unspecified values" Andy Wingo (21 May 2011 08:52 UTC)
Re: [Scheme-reports] "unspecified values" Jim Rees (21 May 2011 13:58 UTC)
Re: [Scheme-reports] "unspecified values" Andy Wingo (21 May 2011 15:10 UTC)
Re: [Scheme-reports] "unspecified values" John Cowan (21 May 2011 18:24 UTC)
Re: [Scheme-reports] "unspecified values" Andy Wingo (22 May 2011 13:28 UTC)
Re: [Scheme-reports] "unspecified values" Andre van Tonder (21 May 2011 15:19 UTC)
Re: [Scheme-reports] "unspecified values" Alex Shinn (21 May 2011 18:19 UTC)
Re: [Scheme-reports] "unspecified values" Alaric Snell-Pym (23 May 2011 11:34 UTC)
Re: [Scheme-reports] "unspecified values" John Cowan (23 May 2011 15:57 UTC)
Re: [Scheme-reports] "unspecified values" Alaric Snell-Pym (23 May 2011 11:20 UTC)

Re: [Scheme-reports] "unspecified values" Andy Wingo 19 May 2011 17:10 UTC

On Thu 19 May 2011 18:10, Alaric Snell-Pym <alaric@snell-pym.org.uk> writes:

> On 05/19/11 16:49, Andy Wingo wrote:
>> Suggestion: replace every instance of "an unspecified value", "value is
>> unspecified", "result is unspecified" and the like with "unspecified
>> values".  This would permit the elegant approach of defining control
>> constructs with no logical value to return 0 values.  This follows the
>> R6RS.
>
> I was keen to do away with the strange dependence on precisely one value
> that was not specified, but it was voted to stick with a single
> undefined value being returned from things!
>
> See #68 at http://trac.sacrideo.us/wg/wiki/WG1Ballot2Results

Unfortunate.

I do not agree with the note that permitting any number of values to be
returned from `set!' et al is incompatible.  It is not incompatible with
implementations, as it widens the scope of what they may do.  It is not
incompatible with existing programs, as I do not expect existing
implementations to switch -- most will do what they have been doing.
The incompatibility would be for old programs that expect `set!' et al
to return a value -- I argue that these are incorrect programs -- *but
only running on those few implementations that would change*.

So basically an implementation chooses whether it wants the elegance or
the compatibility.  That's a fine choice for an implementation to make,
and it does not need to be prescribed by the standard.  In the mean time
migrating programmers off of the idea that `set!' produces a portable,
single value is a good thing.

Andy
--
http://wingolog.org/

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports