Expression closures - use-cases for shortcut lambda syntax(blocks)
Brendan Eich
brendan at mozilla.org
Mon Mar 19 14:14:51 PDT 2007
On Mar 19, 2007, at 1:59 PM, Jeff Dyer wrote:
> To be consistent with the current expression form
>
> function id (x) { return x }
>
> should be shortened to
>
> function id(x) x
>
> not
>
> function id(x) => x
Your argument is not consistency, but brevity: "because the latter
erase characters from the current function expression form, while the
former adds '=>'". A different consistency argument, with the new
lambda syntax, favors =>.
How to decide between conflicting consistencies and brevity? One role
of syntax is to catch the reader's eye and make plain what may be
hard to see or visually acquire quickly. In this light, => is good
and we would not do without it, or shorten it, for the new lambda
syntax.
Lars and I have written a fair amount (Lars did most ;-) of the
builtins/*.es self-hosted standard library (ECMA-262 Edition 3
Chapter 15) may agree (I hope) that just
function (formals) expression
has been less readable than I think they should be. Stylistically, we
have always written
function (formals)
expression;
in classes. Note the semicolon, which was not originally required by
the grammar. We've been loath to put both head and body on one line
because the closing formals) may be hard to see as distinct from the
expression. Anyway, I'd like to hear Lars's preference, but I don't
think consistency favors one outcome, and brevity can't always win
(we're talking JS here, not C/C++/Java/C#).
/be
More information about the Es4-discuss
mailing list