[R6RS] multiple-value binding

dyb at cs.indiana.edu dyb at cs.indiana.edu
Thu Mar 2 07:52:08 EST 2006


> > The syntax is not the same for single values.  To bind a single value
> > with mvlet, you need to wrap the variable in parens, like this:
> > 
> >   (mvlet ([(x) e]) ---)
>
> That doesn't match my understanding of the syntax given for option 4:

Rats.  I screwed up when I said "go with option 4".  I meant "option 1".
Here's my proposal again, corrected.

  Proposal: Go with option 1 and use the name mvlet rather than let-values.
  This has three benefits.  (1) The name of the let* version is obvious and
  natural: mvlet*.  (2) It addresses Anton's concern about "let-values"
  being too long.  (3) Because it's shorter, the transition from let
  to mvlet is a tad bit easier, in that it's less likely to necessitate
  reformatting.  On the downside, "mvlet" isn't a legal Scrabble word,
  and that will offend some people.  Also, it does not completely eliminate
  the discontinuity between let and multiple-value let.

That is, we keep let *as is* (to avoid gumming it up) and add a new form,
the "let-values" form we've been discussing as option 1, only call it
"mvlet".

I apologize for the confusion.

Kent



More information about the R6RS mailing list