[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] multiple values module
An hour and a half ago, John Cowan wrote:
> Eli Barzilay scripsit:
> > IMO implementations that do some half-baked reification of
> > multiple values as first-class values are broken. Things like
> > (list (values 1 2) 3) or (define x (values 1 2)) should throw an
> > error.
> Well, you can write a conformant implementation that does so.
And that's very unfortunate. Things like (list (values 1 2) 3) are
nonsensical when you talk about their *meaning*, because values are
not *specified* as things that are reified as first class values.
Either way (specifying such a reification or making it behave like
multiple values) is far better than the neither-here-nor-there mess.
> Or you can have one that does it CL-style.
Specifically for CL, the choice was for the latter, which is
completely different from:
> Or you can use a unique type, or even a non-unique type. [...]
> Chibi's use cases just aren't anything like Racket's.
How is Racket related to anything I've said?
IMO, the above examples are things that don't make sense, just like
(define (foo x)
;; this function always returns 3...?
(length (call-with-values (lambda () (list x 1 2)) list)))
not returning 3. In this implementation, (car (values)) becomes a
dangerous implementation-exposing value.
> Ultimately, if you want R6RS, you know where to find it.
Why the inferiority complex? Did I mention R6RS, or more generally
This is the kind of childish reply that makes r7rs look like a
childish response to r6rs. Coming from the chairman of wg2 makes this
kind of response worse.
> Here's the total implementation: [...] Completely conformant.
And once you've fixated into that complex, you just continue with it
not looking left or right. Here's a list of words that were not used
in my post:
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!
Scheme-reports mailing list