[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" Alaric Snell-Pym 23 May 2011 11:28 UTC

On 05/21/11 19:17, Alex Shinn wrote:
> It's not a matter whether the code they wrote
> generalizes to a wider class of uses or not.
> It matters that the code works the way they
> were using it before, and with the proposed
> change the code would break.

Yep; and it's then their problem to fix it (and nobody else's) for
having done something that makes assumptions in the first place.

As I said in *my* identikit reply, I often write:

(define (debug label value)
    (printf "DEBUG: ~s=~s\n" label value)
    value)

...and if I then mistakenly use it in code that uses MV, I then get
around to making it all call-with-valuesy! But if I were writing it as a
library for general publication and consumption, I'd do it properly the
first time round.

Perhaps what should happen, to encourage people to Do It Right The First
Time, is to have some syntax to capture the values of an expression as
some opaque object, and another to return those values.

(values-of (values 1 2)) => unspecified

(let ((x (values-of (values 1 2))))
     (unwrap-values x)) => 1 2

My debug procedure would need to become syntax to properly wrap the
value expression, so perhaps it's not enough, though...

ABS

--
Alaric Snell-Pym
http://www.snell-pym.org.uk/alaric/

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