[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RECEIVE vs. LET-VALUES



        So, expanding RECEIVE, the LET-VALUES version is really

            (define-syntax let-values
              (syntax-rules ()
                ((let-values (formals expression) body ...)
                 (call-with-values (lambda () expression)
                                   (lambda formals body ...)))))

that is, exactly like RECEIVE except that every LET-VALUES-expression must
have an additional pair of parentheses around the <formals> <expression>
part.

        The arguments for the LET-VALUES syntax are compatibility with
MzScheme and, I suppose, a sense that bracketing the binding part separates
it more cleanly from the body of the expression.  The argument against it
is that the parentheses around the binding part are pure sugar, always
present and never needed to resolve any ambiguity.

-- 
======  John David Stone - Lecturer in Computer Science and Philosophy  =====
==============  Manager of the Mathematics Local-Area Network  ==============
==============  Grinnell College - Grinnell, Iowa 50112 - USA  ==============
========  stone@xxxxxxxxxxxxxxx - http://www.cs.grinnell.edu/~stone/  =======