[R6RS] Request for vote: Syntax for multiple values

Marc Feeley feeley
Fri Jan 6 16:35:27 EST 2006


On 17-Dec-05, at 11:32 AM, Michael Sperber wrote:

>
> It seems the discussion has died down for this one.  So I think we're
> ready for a vote.  Most people who had a definite preference seemed to
> like Kent's proposal:
>
> In the R5RS formal syntax, extend <binding spec> as follows:
>
> <binding spec> -> (<binding lhs> <expression>)
> <binding lhs> -> <variable>
>                | (<variable>*)
>
> ... and extend the semantics of LET, LET*, LETREC, and LETREC*
> accordingly.
>
> As a separate issue, provided we agree on the above, I'd like to vote
> on whether we also want to allow:
>
> <binding lhs> -> (<variable>+ . <variable>)
>

The discussion I remember from Tallinn is that you were proposing the  
syntax

<binding spec> -> (<binding lhs> <expression>)
<binding lhs> -> <variable>*

I agree with that.  I dislike the extra parens in the syntax you  
propose.  When I see:

(let (((a b) (f x))) ...)

I have a hard time following what's happening due to the profusion of  
parens.  This feels clearer:

(let ((a b (f x))) ...)

and a single variable binding, i.e.

(let ((a (f x))) ...)

is not a special case.

Marc



More information about the R6RS mailing list