<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On May 21, 2011, at 9:57 PM, Bob Nystrom wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">On Sat, May 21, 2011 at 1:24 PM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.com">brendan@mozilla.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">> It turns out now that it's really a dilemma what to choose -- arrows or blocks... have to think.</div><div class="im">
<br>
</div>Arrow function syntax is "just syntax". I will drop it if we can agree on block lambda revival. As @_sjs (Sami Samhuri) tweeted at me, "We'll always have function." ;-)<br></blockquote><div>

<br></div><div>I was worried that using these lambda blocks would be heavier-weight for the functional idiomatic use cases where <font class="Apple-style-span" face="'courier new', monospace">-></font> really shines. But since this proposal also allows an implicit <font class="Apple-style-span" face="'courier new', monospace">return</font>, this actually ends up being even more terse than <font class="Apple-style-span" face="'courier new', monospace">-></font> functions:</div>

<div><br></div><div><div><font class="Apple-style-span" face="'courier new', monospace">let names = people.filter((p) -> p.lastName == 'Smith').map((p) -> p.firstName);</font></div><div><font class="Apple-style-span" face="'courier new', monospace">let names = people.filter({|p| p.lastName == 'Smith'}).map({|p| p.firstName});</font></div>

</div><div><br></div><div>For me, this is pretty compelling. It covers both the "roll your block structure" use case and the "lightweight lambda" one. Nice!</div></div></blockquote><br></div><div>Good one-liner A/B comparison -- thanks.</div><div><br></div><div>/be</div><div><br></div><div>P.S. This will help kill something in ECMA-357, E4X, that is sugar for 'with', where the sugar hooks the kids on the poison. The lightweight syntax of blocks is just about needed, including paren-free calls (not used in your example, good choice -- and good to have the choice).</div><br></body></html>