[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