<div class="gmail_quote">On 29 March 2012 22:37, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.org">brendan@mozilla.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">Andreas Rossberg wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I was thinking, it should be possible to extend arrow syntax to allow an optional name? As in:<br>
<br>
  f(n) => n==0 ? 1 : x * f(n-1)<br>
</blockquote>
<br></div>
I know you're not proposing, but this would have to be a separate proposal.</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I fear adding it to arrow function syntax will lose consensus.</blockquote>

<div><br></div><div><div>Oh yes, definitely. Just thought experiments...</div><div> </div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> For one thing, the binding forms all have a keyword in front (even formal parameter and catch variable bindings do). This doesn't.<br>

</blockquote><div><br></div><div>Not quite: parameters in arrow functions don't either.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Currently arrow functions occur as an alternate AssignmentExpression right-hand side. They are expressions. What you sketched would have to be produced at statement level to be a declaration, but then it lacks a prefix keyword and so is harder to see (or perhaps just "inconsistent" in some way that is foolish to worry about?).</blockquote>

<div><br></div><div>Ah, no, I was thinking of this as still being purely an expression, not extending its meaning to be a declaration. That is, the function name is only visible in the body. I completely agree that all declaration statements should start with a keyword.</div>

<div><br></div><div>/Andreas</div><div><br></div></div>