Re: [Scheme-reports] multiple values module Eli Barzilay (20 May 2011 07:08 UTC)
Re: [Scheme-reports] multiple values module John Cowan (20 May 2011 16:02 UTC)
Re: [Scheme-reports] multiple values module Andy Wingo (20 May 2011 16:04 UTC)
Re: [Scheme-reports] multiple values module John Cowan (20 May 2011 19:48 UTC)
Re: [Scheme-reports] multiple values module Eli Barzilay (20 May 2011 19:50 UTC)
Re: [Scheme-reports] multiple values module Emmanuel Medernach (21 May 2011 06:43 UTC)
Re: [Scheme-reports] multiple values module Andy Wingo (21 May 2011 08:49 UTC)
Re: [Scheme-reports] multiple values module John Cowan (21 May 2011 17:50 UTC)
Re: [Scheme-reports] multiple values module Andy Wingo (22 May 2011 14:05 UTC)
Re: [Scheme-reports] multiple values module Emmanuel Medernach (24 May 2011 07:06 UTC)
Re: [Scheme-reports] multiple values module John Cowan (24 May 2011 16:08 UTC)
Re: [Scheme-reports] multiple values module Emmanuel Medernach (24 May 2011 17:06 UTC)
Re: [Scheme-reports] multiple values module Aaron W. Hsu (24 May 2011 18:54 UTC)
Re: [Scheme-reports] multiple values module Per Bothner (24 May 2011 23:26 UTC)
Re: [Scheme-reports] multiple values module John Cowan (24 May 2011 21:20 UTC)
Re: [Scheme-reports] multiple values module Eli Barzilay (24 May 2011 21:26 UTC)
Re: [Scheme-reports] multiple values module John Cowan (24 May 2011 21:37 UTC)
Re: [Scheme-reports] multiple values module Eli Barzilay (24 May 2011 21:41 UTC)
Re: [Scheme-reports] multiple values module Aaron W. Hsu (25 May 2011 03:41 UTC)
Re: [Scheme-reports] multiple values module Eli Barzilay (25 May 2011 06:42 UTC)
Re: [Scheme-reports] multiple values module Andy Wingo (21 May 2011 08:42 UTC)
Re: [Scheme-reports] multiple values module Aaron W. Hsu (20 May 2011 16:27 UTC)
Re: [Scheme-reports] multiple values module Alex Shinn (20 May 2011 16:54 UTC)
Re: [Scheme-reports] multiple values module Andy Wingo (20 May 2011 16:57 UTC)
Re: [Scheme-reports] multiple values module Eli Barzilay (20 May 2011 17:47 UTC)
Re: [Scheme-reports] multiple values module John Cowan (20 May 2011 20:38 UTC)
Re: [Scheme-reports] multiple values module Eli Barzilay (21 May 2011 02:03 UTC)
Re: [Scheme-reports] multiple values module John Cowan (21 May 2011 05:11 UTC)
Re: [Scheme-reports] multiple values module Eli Barzilay (21 May 2011 05:04 UTC)
Re: [Scheme-reports] multiple values module John Cowan (21 May 2011 18:43 UTC)
Re: [Scheme-reports] multiple values module Andre van Tonder (21 May 2011 19:49 UTC)
Re: [Scheme-reports] multiple values module John Cowan (21 May 2011 20:49 UTC)

Re: [Scheme-reports] multiple values module Eli Barzilay 20 May 2011 07:07 UTC

9 hours ago, John Cowan wrote:
> Andy Wingo scripsit:
>
> > What's the rationale for breaking call-with-values and values out to
> > their own module?
>
> Primarily because they aren't in IEEE/R4RS.

(*cough*)

> > Suggestion: since it is trivial to implement `call-with-values'
> > with a define-record-type <values>, simply require it in the base
> > Scheme.  [...]

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.  (Note to potential flamers: this has nothing to do with the
question of having MV in the language.)

One relevant by-product of this is that debating whether `set!' can
return 0 values looks very different in such an implementation.

> Chibi actually implements multiple purely in Scheme by returning a
> list with a unique CAR, which prints as "(value)".

Ugh.  If the above is broken, then this is a train wreck.

  > (cadr (values 1 2))
  1
  > (length (values '(1) 2))
  3
  > (define (foo x)
      ;; this function always returns 3...?
      (length (call-with-values (lambda () (list x 1 2)) list)))
  > (foo (car (values)))
  2

I'm sure that there are reasons for implementing things this way, but
making an argument out of it sounds insane.  (Or a camouflaged attemt
to make multiple values so useless that it's as if they're not in...)

--
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

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