<br><div class="gmail_quote">2008/12/2 Brendan Eich <span dir="ltr">&lt;<a href="mailto:brendan@mozilla.com">brendan@mozilla.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style=""><div>This loses almost all connection with the rest of the language. Arguments are passed in a comma separated list. Wrapped in parentheses. The Smalltalk <i>hommage</i>&nbsp;loses the parens but keeps the commas. Any other separator is just wrong, sorry.</div>
<div><br></div><div>C# uses (a, b, c) =&gt; ... but in JS the comma operator makes that nasty to parse top-down. I think the only candidates have to be of the form</div><div><br></div><div>^(a, b, c) {...}</div><div><br></div>
<div>(^ could be another character, but it seems to beat \ as others have noted), or else the Smalltalky</div><div><br></div><div>{ |a, b, c| ... }</div><div><br></div><div>At this point we need a bake-off, or a convincing argument against the unusual vertical bar usage.</div>
<div><br></div><font color="#888888"><div>/be</div></font></div><br></blockquote></div><br>The double bar syntax looks ok except when there are no arguments since it then looks like logical or which is confusing to my eyes. And when there is just a space between them, it looks awkward as well.<br>
<br>I like the idea of a short prefix (shorter than lambda), but there aren&#39;t any single character symbols that don&#39;t already have meaning somewhere else it seems.<br><br>With these two points in mind, I&#39;d like to propose using the SML syntax for lambdas. This introduces a new keyword but it is only two characters and I think it better describes what is going on than ^ or some other character. There are probably other short 2 letter keywords that would work as well.<br>