<html><head>
<meta content="text/html; charset=windows-1252" 
http-equiv="Content-Type">
</head><body bgcolor="#FFFFFF" text="#000000">
<blockquote style="border: 0px none;" 
cite="mid:4F11BE4E.5010002@mozilla.org" type="cite">
  <div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="brendan@mozilla.org" photoname="Brendan Eich" 
src="cid:part1.09000703.05050709@mozilla.org" name="postbox-contact.jpg"
 height="25px" width="25px"></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:brendan@mozilla.org" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Brendan Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 14, 2012 
9:41 AM</span></font></div></div></div>
  <div style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">
<meta http-equiv="Content-Type" content="text/html; 
charset=windows-1252">

<blockquote type="cite" 
cite="mid:1DFE9D67-88E7-4552-B383-65F68A1FEBFD@rauschma.de" 
style="border: 0px none;"><div class="__pbConvHr" style="margin:30px 
25px 10px 25px;"><div style="display:table;width:100%;border-top:1px 
solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 name="postbox-contact.jpg" 
src="cid:part2.06070701.05060806@mozilla.org" photoname="Axel 
Rauschmayer" photoaddress="axel@rauschma.de" height="25px" width="25px"></div>
   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:axel@rauschma.de" moz-do-not-send="true">Axel 
Rauschmayer</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 13, 2012 
9:09 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;"><div><br></div><div>If
 I read the grammar correctly, then you can do things such as (read 
"~~~>" as "desugars to"):</div><div><br></div><div>     myfunc {|| } 
{|| } (arg3) (arg4)  ~~~>  myfunc({|| }, {|| }, arg3, arg4)</div><div><br></div><div>The

 above is a function call with 4 arguments. My wish would be different: I
 would want to put lambdas after a function or method call and treat 
those lambdas as additional arguments:</div><div><br></div><div>    
 myfunc(arg1, arg2) {|| } {|| }  ~~~>  myfunc(arg1, arg2, {|| }, {|| 
})</div><div><div>     myfunc {|| } {|| }  ~~~>  myfunc({|| }, {|| })</div></div></div>
</blockquote>
<br>
The closing parenthesis after arg2 really ought to mean end of formal 
parameter list. Anything else is too magical.<br></div>
</blockquote>
<br>
s/formal/actual/<br>
<br>
/be<br>
<blockquote style="border: 0px none;" 
cite="mid:4F11BE4E.5010002@mozilla.org" type="cite">
  <div style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody">
<blockquote type="cite" 
cite="mid:1DFE9D67-88E7-4552-B383-65F68A1FEBFD@rauschma.de" 
style="border: 0px none;"><div class="__pbConvBody" __pbrmquotes="true" 
style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;"><div><br></div><div>Rationale:
 I would always make lambdas trailing arguments, similar to</div><div>   
  if (cond) {} {}</div><div>And I would rather achieve this effect 
without currying.</div></div>
</blockquote>
<br>
Why should foo(arg1)(arg2) and foo(arg1){||arg2} differ?<br>
<br>
Your use-case is satisfied by returning a function (memoized, singleton 
even), but the symmetry between (arg1, ... argN) and space-separated 
BlockArguments should not be broken.<br>
<br>
<blockquote type="cite" 
cite="mid:1DFE9D67-88E7-4552-B383-65F68A1FEBFD@rauschma.de" 
style="border: 0px none;"><div class="__pbConvBody" __pbrmquotes="true" 
style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;">
    <div> Following a block with a non-block doesn’t seem like a good 
idea.</div>
  </div>
</blockquote>
<br>
This was an explicit goal, in order to support use-cases including 
setTimeout and promises APIs.<br>
<blockquote type="cite" 
cite="mid:1DFE9D67-88E7-4552-B383-65F68A1FEBFD@rauschma.de" 
style="border: 0px none;"><div class="__pbConvBody" __pbrmquotes="true" 
style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;"><div><br></div><div>Has
 the other approach been considered?</div></div>
</blockquote>
<br>
Yes, see<br>
<br>
<a moz-do-not-send="true" 
href="https://mail.mozilla.org/pipermail/es-discuss/2011-May/014675.html"
 class="moz-txt-link-freetext">https://mail.mozilla.org/pipermail/es-discuss/2011-May/014675.html</a><br>
<br>
/be<br>
<blockquote type="cite" 
cite="mid:1DFE9D67-88E7-4552-B383-65F68A1FEBFD@rauschma.de" 
style="border: 0px none;">
  <div class="__pbConvBody" __pbrmquotes="true" 
style="color:#888888;margin-left:24px;margin-right:24px;"><div><br></div><div
 apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: 
rgb(0, 0, 0); 
font-family: Helvetica; font-style: normal; font-variant: normal; 
font-weight: normal; letter-spacing: normal; line-height: normal; 
orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: 
none; white-space: normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><span class="Apple-style-span" 
style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 
Helvetica; font-style: normal; font-variant: normal; font-weight: 
normal; letter-spacing: normal; line-height: normal; orphans: 2; 
text-align: -webkit-auto; text-indent: 0px; text-transform: none; 
white-space: normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span class="Apple-style-span" 
style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: 
normal; font-variant: normal; font-weight: normal; letter-spacing: 
normal; line-height: normal; orphans: 2; text-indent: 0px; 
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;
 -webkit-border-horizontal-spacing: 0px; 
-webkit-border-vertical-spacing: 0px; 
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: 
auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; 
-webkit-line-break: after-white-space; "><span class="Apple-style-span" 
style="border-collapse: 
separate; -webkit-border-horizontal-spacing: 0px; 
-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; 
font-weight: normal; letter-spacing: normal; line-height: normal; 
-webkit-text-decorations-in-effect: none; text-indent: 0px; 
-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; 
white-space: normal; widows: 2; word-spacing: 0px; "><div 
style="word-wrap: break-word; 
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div 
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; "><span class="Apple-style-span" style="font-size: 
medium; "><div style="margin-top: 0px; margin-right: 0px;
 margin-bottom: 0px; margin-left: 0px; ">-- </div><div 
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; ">Dr. Axel Rauschmayer</div><div style="margin-top: 
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a 
href="mailto:axel@rauschma.de" moz-do-not-send="true">axel@rauschma.de</a></div><div
 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; "><br></div><div style="margin-top: 0px; margin-right:
 0px; margin-bottom: 0px; margin-left: 0px; "><div style="margin-top: 
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">home: <a
 href="http://rauschma.de" moz-do-not-send="true">rauschma.de</a></div>twitter:

 <a href="http://twitter.com/rauschma" moz-do-not-send="true">twitter.com/rauschma</a></div><div
 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; ">blog: <a href="http://2ality.com" 
moz-do-not-send="true">2ality.com</a></div></span></div></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></span>
</div>
<br></div>
  <div class="__pbConvHr" style="margin:30px 25px 10px 25px;"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 name="postbox-contact.jpg" 
src="cid:part1.09000703.05050709@mozilla.org" photoname="Brendan Eich" 
photoaddress="brendan@mozilla.org" height="25px" width="25px"></div>   <div
 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:brendan@mozilla.org" moz-do-not-send="true">Brendan
 Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 13, 2012 
12:58 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" 
style="color:#888888;margin-left:24px;margin-right:24px;">
<meta content="text/html; charset=windows-1252" 
http-equiv="Content-Type">
Fixed: 
<a class="moz-txt-link-freetext" 
href="http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival&do=diff"
 moz-do-not-send="true">http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival&do=diff</a><br>
<br>
The LeftHandSideExpression productions and their kids (NewExpression and
 CallExpression) are funky and I keep misremembering how NewExpression 
is what bottoms out via MemberExpression -> PrimaryExpression at 
Identifier.<br>
<br>
/be<br>
<br>

  </div>
  <div class="__pbConvHr" style="margin:30px 25px 10px 25px;"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 name="postbox-contact.jpg" 
src="cid:part1.09000703.05050709@mozilla.org" photoname="Brendan Eich" 
photoaddress="brendan@mozilla.org" height="25px" width="25px"></div>   <div
 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:brendan@mozilla.org" moz-do-not-send="true">Brendan
 Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:43 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" 
style="color:#888888;margin-left:24px;margin-right:24px;">
<meta content="text/html; charset=windows-1252" 
http-equiv="Content-Type">

<blockquote style="border: 0px none;" 
cite="mid:4F0FDFAA.6090704@mozilla.org" type="cite"><div 
style="margin:30px 
25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px 
solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="brendan@mozilla.org" photoname="Brendan Eich" 
src="cid:part1.09000703.05050709@mozilla.org" name="postbox-contact.jpg"
 moz-do-not-send="true" height="25px" width="25px"></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:brendan@mozilla.org" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Brendan
 Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:39 PM</span></font></div></div></div>
  <div style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">
<meta http-equiv="Content-Type" content="text/html; 
charset=windows-1252">  v.map {|e| e*e}<br></div></blockquote>
<br>
Er, not even that -- Arguments required in a CallExpression, so v().map 
or v.map() but not just v.map. Fixes coming tomorrow.<br>
<br>
/be<br>
<blockquote style="border: 0px none;" 
cite="mid:4F0FDFAA.6090704@mozilla.org" type="cite"><div 
style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody">
<br>
or<br>
<br>
  get_map() {|e| e*e}<br>
<br>
or similar. I will fix.<br>
<br>
/be<br>
<pre wrap="">_______________________________________________
es-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:es-discuss@mozilla.org" moz-do-not-send="true">es-discuss@mozilla.org</a>
<a class="moz-txt-link-freetext" href="https://mail.mozilla.org/listinfo/es-discuss" moz-do-not-send="true">https://mail.mozilla.org/listinfo/es-discuss</a>
</pre></div>
  <div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="axel@rauschma.de" photoname="Axel 
Rauschmayer" src="cid:part2.06070701.05060806@mozilla.org" 
name="postbox-contact.jpg" moz-do-not-send="true" height="25px" 
width="25px"></div>
   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:axel@rauschma.de" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Axel 
Rauschmayer</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:16 PM</span></font></div></div></div>
  <div style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody"><div><a 
class="moz-txt-link-freetext" 
href="http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival"
 moz-do-not-send="true">http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival</a><br><br>I’m


 trying to understand the syntax:<br>BlockArguments :<br>    BlockLambda<br>
    BlockArguments [no LineTerminator here] BlockLambda<br>    
BlockArguments [no LineTerminator here] ( InitialValue )<br><br>- 
Wouldn’t this allow the following?  BlockLambda [no LineTerminator here]
 BlockLambda<br>- InitialValue means that paren-free can be combined 
with arguments that aren’t blocks, right?<br><br>     
myLoopFunc(initValue1)(initValue2) { | arg1, arg2 | ... }<br><br>   I 
think I would prefer the following (IIRC, more like Ruby):<br><br>     
myLoopFunc(initValue1, initValue2) { | arg1, arg2 | ... }<br><br><br><br></div></div></blockquote>
  </div>
  <div class="__pbConvHr" style="margin:30px 25px 10px 25px;"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 name="postbox-contact.jpg" 
src="cid:part1.09000703.05050709@mozilla.org" photoname="Brendan Eich" 
photoaddress="brendan@mozilla.org" height="25px" width="25px"></div>   <div
 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:brendan@mozilla.org" moz-do-not-send="true">Brendan
 Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:39 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" 
style="color:#888888;margin-left:24px;margin-right:24px;">
<meta content="text/html; charset=windows-1252" 
http-equiv="Content-Type">

<blockquote style="border: 0px none;" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" type="cite"><div
 style="margin:30px 
25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px 
solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="axel@rauschma.de" photoname="Axel 
Rauschmayer" src="cid:part2.06070701.05060806@mozilla.org" 
name="postbox-contact.jpg" moz-do-not-send="true" height="25px" 
width="25px"></div>
   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:axel@rauschma.de" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Axel 
Rauschmayer</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:16 PM</span></font></div></div></div>
  <div style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody"><div><a 
class="moz-txt-link-freetext" 
href="http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival"
 moz-do-not-send="true">http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival</a><br><br>I’m


 trying to understand the syntax:<br>BlockArguments :<br>        
BlockLambda<br>     BlockArguments [no LineTerminator here] BlockLambda<br>    


    BlockArguments [no LineTerminator here] ( InitialValue )<br><br>- 
Wouldn’t this allow the following?  BlockLambda [no LineTerminator here]
 BlockLambda<br></div></div></blockquote>
<br>
Yes.<br>
<br>
<blockquote style="border: 0px none;" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" type="cite"><div
 style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">
    <div>- InitialValue means that paren-free can be combined with 
arguments that aren’t blocks, right?<br></div>
  </div></blockquote>
<br>
Yes.<br>
<blockquote style="border: 0px none;" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" type="cite">
  <div style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">
    <div><br>     myLoopFunc(initValue1)(initValue2) { | arg1, arg2 | 
... }<br></div>
  </div></blockquote>
<br>
No, the myLoopFunc(initValue1) is a CallExpression -- see <span><meta 
http-equiv="content-type" content="text/html; charset=windows-1252"><pre class="code ebnf">CallWithBlockArguments :<span style="font-family: sans-serif;">
</span><span><meta http-equiv="content-type" content="text/html; charset=windows-1252"><pre class="code ebnf">    CallExpression [no LineTerminator here] BlockArguments</pre> 
The *return value* of that ordinary CallExpression is the callee of the paren-free call.
</span></pre></span>
<blockquote style="border: 0px none;" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" type="cite">
  <div style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">
    <div><br>   I think I would prefer the following (IIRC, more like 
Ruby):<br><br>     myLoopFunc(initValue1, initValue2) { | arg1, arg2 | 
... }<br><br></div>
  </div></blockquote>
<br>
That parses, as described above. The two-argument CallExpression must 
return a function that takes the block arguments.<br>
<br>
I see a problem in the grammar in the strawman, now that you mention it:
 no way to produce a simple identifier callee from CallExpression, so no<br>
<br>
  map {|e| e*e}<br>
<br>
only<br>
<br>
  v.map {|e| e*e}<br>
<br>
or<br>
<br>
  get_map() {|e| e*e}<br>
<br>
or similar. I will fix.<br>
<br>
/be<br>
  </div>
  <div class="__pbConvHr" style="margin:30px 25px 10px 25px;"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 name="postbox-contact.jpg" 
src="cid:part2.06070701.05060806@mozilla.org" photoname="Axel 
Rauschmayer" photoaddress="axel@rauschma.de" height="25px" width="25px"></div>
   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:axel@rauschma.de" moz-do-not-send="true">Axel 
Rauschmayer</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:16 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" 
style="color:#888888;margin-left:24px;margin-right:24px;"><div><a 
moz-do-not-send="true" 
href="http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival"
 class="moz-txt-link-freetext">http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival</a><br><br>I’m

 trying to understand the syntax:<br>BlockArguments :<br>    BlockLambda<br>
    BlockArguments [no LineTerminator here] BlockLambda<br>    
BlockArguments [no LineTerminator here] ( InitialValue )<br><br>- 
Wouldn’t this allow the following?  BlockLambda [no LineTerminator here]
 BlockLambda<br>- InitialValue means that paren-free can be combined 
with arguments that aren’t blocks, right?<br><br>     
myLoopFunc(initValue1)(initValue2) { | arg1, arg2 | ... }<br><br>   I 
think I would prefer the following (IIRC, more like Ruby):<br><br>     
myLoopFunc(initValue1, initValue2) { | arg1, arg2 | ... }<br><br><br><br></div></div>
</blockquote>
<pre wrap="">_______________________________________________
es-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a>
<a class="moz-txt-link-freetext" href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listinfo/es-discuss</a>
</pre></div>
  <div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="axel@rauschma.de" photoname="Axel Rauschmayer" 
src="cid:part2.06070701.05060806@mozilla.org" name="postbox-contact.jpg"
 height="25px" width="25px"></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:axel@rauschma.de" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Axel Rauschmayer</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 13, 2012 
9:09 PM</span></font></div></div></div>
  <div style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody"><div><br></div><div>If I read 
the grammar correctly, then you can do things such as (read "~~~>" as
 "desugars to"):</div><div><br></div><div>     myfunc {|| } {|| } (arg3)
 (arg4)  ~~~>  myfunc({|| }, {|| }, arg3, arg4)</div><div><br></div><div>The
 above is a function call with 4 arguments. My wish would be different: I
 would want to put lambdas after a function or method call and treat 
those lambdas as additional arguments:</div><div><br></div><div>    
 myfunc(arg1, arg2) {|| } {|| }  ~~~>  myfunc(arg1, arg2, {|| }, {|| 
})</div><div><div>     myfunc {|| } {|| }  ~~~>  myfunc({|| }, {|| })</div></div><div><br></div><div>Rationale:
 I would always make lambdas trailing arguments, similar to</div><div>   
  if (cond) {} {}</div><div>And I would rather achieve this effect 
without currying. Following a block with a non-block doesn’t seem like a
 good idea.</div><div><br></div><div>Has the other approach been 
considered?</div><div><br></div><div apple-content-edited="true">
<span style="border-collapse: separate; color: rgb(0, 0, 0); 
font-family: Helvetica; font-style: normal; font-variant: normal; 
font-weight: normal; letter-spacing: normal; line-height: normal; 
orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: 
none; white-space: normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><span 
style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 
Helvetica; font-style: normal; font-variant: normal; font-weight: 
normal; letter-spacing: normal; line-height: normal; orphans: 2; 
text-align: -webkit-auto; text-indent: 0px; text-transform: none; 
white-space: normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: 
normal; font-weight: normal; letter-spacing: normal; line-height: 
normal; orphans: 2; text-indent: 0px; text-transform: none; white-space:
 normal; widows: 2; word-spacing: 0px; 
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing:
 0px; -webkit-text-decorations-in-effect: none; 
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; 
font-size: medium; " class="Apple-style-span"><div style="word-wrap: 
break-word; -webkit-nbsp-mode: space; -webkit-line-break: 
after-white-space; "><span style="border-collapse: separate; color: 
rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: 
normal; font-variant: normal; font-weight: normal; letter-spacing: 
normal; line-height: normal; orphans: 2; text-indent: 0px; 
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;
 -webkit-border-horizontal-spacing: 0px; 
-webkit-border-vertical-spacing: 0px; 
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: 
auto; -webkit-text-stroke-width: 0px; " class="Apple-style-span"><div 
style="word-wrap: break-word; -webkit-nbsp-mode: space; 
-webkit-line-break: after-white-space; "><span style="border-collapse: 
separate; -webkit-border-horizontal-spacing: 0px; 
-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; 
font-weight: normal; letter-spacing: normal; line-height: normal; 
-webkit-text-decorations-in-effect: none; text-indent: 0px; 
-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; 
white-space: normal; widows: 2; word-spacing: 0px; " 
class="Apple-style-span"><div style="word-wrap: break-word; 
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div 
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; "><span style="font-size: medium; " 
class="Apple-style-span"><div style="margin-top: 0px; margin-right: 0px;
 margin-bottom: 0px; margin-left: 0px; ">-- </div><div 
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; ">Dr. Axel Rauschmayer</div><div style="margin-top: 
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a 
moz-do-not-send="true" href="mailto:axel@rauschma.de">axel@rauschma.de</a></div><div
 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; "><br></div><div style="margin-top: 0px; margin-right:
 0px; margin-bottom: 0px; margin-left: 0px; "><div style="margin-top: 
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">home: <a
 moz-do-not-send="true" href="http://rauschma.de">rauschma.de</a></div>twitter:
 <a moz-do-not-send="true" href="http://twitter.com/rauschma">twitter.com/rauschma</a></div><div
 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; 
margin-left: 0px; ">blog: <a moz-do-not-send="true" 
href="http://2ality.com">2ality.com</a></div></span></div></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></span>
</div>
<br><div>_______________________________________________<br>es-discuss 
mailing list<br><a class="moz-txt-link-abbreviated" href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br><a class="moz-txt-link-freetext" href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listinfo/es-discuss</a><br></div></div>
  <div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="brendan@mozilla.org" photoname="Brendan Eich" 
src="cid:part1.09000703.05050709@mozilla.org" name="postbox-contact.jpg"
 height="25px" width="25px"></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:brendan@mozilla.org" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Brendan Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 13, 2012 
12:58 PM</span></font></div></div></div>
  <div style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody">
<meta http-equiv="Content-Type" content="text/html; 
charset=windows-1252">
Fixed: 
<a moz-do-not-send="true" 
href="http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival&do=diff"
 class="moz-txt-link-freetext">http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival&do=diff</a><br>
<br>
The LeftHandSideExpression productions and their kids (NewExpression and
 CallExpression) are funky and I keep misremembering how NewExpression 
is what bottoms out via MemberExpression -> PrimaryExpression at 
Identifier.<br>
<br>
/be<br>
<br>

  </div>
  <div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="brendan@mozilla.org" photoname="Brendan Eich" 
src="cid:part1.09000703.05050709@mozilla.org" name="postbox-contact.jpg"
 height="25px" width="25px"></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:brendan@mozilla.org" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Brendan Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:43 PM</span></font></div></div></div>
  <div style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody">
<meta http-equiv="Content-Type" content="text/html; 
charset=windows-1252">

<blockquote type="cite" cite="mid:4F0FDFAA.6090704@mozilla.org" 
style="border: 0px none;">
  <div class="__pbConvHr" style="margin:30px 25px 10px 25px;"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 moz-do-not-send="true" name="postbox-contact.jpg" 
src="cid:part1.09000703.05050709@mozilla.org" photoname="Brendan Eich" 
photoaddress="brendan@mozilla.org" height="25px" width="25px"></div>   <div
 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:brendan@mozilla.org" moz-do-not-send="true">Brendan
 Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:39 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;">
<meta content="text/html; charset=windows-1252" 
http-equiv="Content-Type">  v.map {|e| e*e}<br></div></blockquote>
<br>
Er, not even that -- Arguments required in a CallExpression, so v().map 
or v.map() but not just v.map. Fixes coming tomorrow.<br>
<br>
/be<br>
<blockquote type="cite" cite="mid:4F0FDFAA.6090704@mozilla.org" 
style="border: 0px none;">
  <div class="__pbConvBody" __pbrmquotes="true" 
style="color:#888888;margin-left:24px;margin-right:24px;">
<br>
or<br>
<br>
  get_map() {|e| e*e}<br>
<br>
or similar. I will fix.<br>
<br>
/be<br>
<pre wrap="">_______________________________________________
es-discuss mailing list
<a moz-do-not-send="true" href="mailto:es-discuss@mozilla.org" class="moz-txt-link-abbreviated">es-discuss@mozilla.org</a>
<a moz-do-not-send="true" href="https://mail.mozilla.org/listinfo/es-discuss" class="moz-txt-link-freetext">https://mail.mozilla.org/listinfo/es-discuss</a>
</pre></div>
  <div class="__pbConvHr" style="margin:30px 25px 10px 25px;"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 moz-do-not-send="true" name="postbox-contact.jpg" 
src="cid:part2.06070701.05060806@mozilla.org" photoname="Axel 
Rauschmayer" photoaddress="axel@rauschma.de" height="25px" width="25px"></div>
   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:axel@rauschma.de" moz-do-not-send="true">Axel 
Rauschmayer</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:16 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" 
style="color:#888888;margin-left:24px;margin-right:24px;"><div><a 
moz-do-not-send="true" 
href="http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival"
 class="moz-txt-link-freetext">http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival</a><br><br>I’m

 trying to understand the syntax:<br>BlockArguments :<br>    BlockLambda<br>
    BlockArguments [no LineTerminator here] BlockLambda<br>    
BlockArguments [no LineTerminator here] ( InitialValue )<br><br>- 
Wouldn’t this allow the following?  BlockLambda [no LineTerminator here]
 BlockLambda<br>- InitialValue means that paren-free can be combined 
with arguments that aren’t blocks, right?<br><br>     
myLoopFunc(initValue1)(initValue2) { | arg1, arg2 | ... }<br><br>   I 
think I would prefer the following (IIRC, more like Ruby):<br><br>     
myLoopFunc(initValue1, initValue2) { | arg1, arg2 | ... }<br><br><br><br></div></div></blockquote>
  </div>
  <div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 photoaddress="brendan@mozilla.org" photoname="Brendan Eich" 
src="cid:part1.09000703.05050709@mozilla.org" name="postbox-contact.jpg"
 height="25px" width="25px"></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:brendan@mozilla.org" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">Brendan Eich</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:39 PM</span></font></div></div></div>
  <div style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody">
<meta http-equiv="Content-Type" content="text/html; 
charset=windows-1252">

<blockquote type="cite" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" 
style="border: 0px none;">
  <div class="__pbConvHr" style="margin:30px 25px 10px 25px;"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px">       <div 
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
 moz-do-not-send="true" name="postbox-contact.jpg" 
src="cid:part2.06070701.05060806@mozilla.org" photoname="Axel 
Rauschmayer" photoaddress="axel@rauschma.de" height="25px" width="25px"></div>
   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;" href="mailto:axel@rauschma.de" moz-do-not-send="true">Axel 
Rauschmayer</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
11:16 PM</span></font></div></div></div>
  <div class="__pbConvBody" __pbrmquotes="true" style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;"><div><a moz-do-not-send="true" 
href="http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival"
 class="moz-txt-link-freetext">http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda_revival</a><br><br>I’m

 trying to understand the syntax:<br>BlockArguments :<br>        
BlockLambda<br>     BlockArguments [no LineTerminator here] BlockLambda<br>    

    BlockArguments [no LineTerminator here] ( InitialValue )<br><br>- 
Wouldn’t this allow the following?  BlockLambda [no LineTerminator here]
 BlockLambda<br></div></div></blockquote>
<br>
Yes.<br>
<br>
<blockquote type="cite" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" 
style="border: 0px none;">
  <div class="__pbConvBody" __pbrmquotes="true" style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;">
    <div>- InitialValue means that paren-free can be combined with 
arguments that aren’t blocks, right?<br></div>
  </div></blockquote>
<br>
Yes.<br>
<blockquote type="cite" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" 
style="border: 0px none;">
  <div class="__pbConvBody" __pbrmquotes="true" style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;">
    <div><br>     myLoopFunc(initValue1)(initValue2) { | arg1, arg2 | 
... }<br></div>
  </div></blockquote>
<br>
No, the myLoopFunc(initValue1) is a CallExpression -- see <span><meta 
content="text/html; charset=windows-1252" http-equiv="content-type"><pre class="code ebnf">CallWithBlockArguments :<span style="font-family: sans-serif;">
</span><span><meta content="text/html; charset=windows-1252" http-equiv="content-type"><pre class="code ebnf">    CallExpression [no LineTerminator here] BlockArguments</pre> 
The *return value* of that ordinary CallExpression is the callee of the paren-free call.
</span></pre></span>
<blockquote type="cite" 
cite="mid:5EBB712C-A609-44A0-ADB2-50B743743D5B@rauschma.de" 
style="border: 0px none;">
  <div class="__pbConvBody" __pbrmquotes="true" style="color: rgb(136, 
136, 136); margin-left: 24px; 
margin-right: 24px;">
    <div><br>   I think I would prefer the following (IIRC, more like 
Ruby):<br><br>     myLoopFunc(initValue1, initValue2) { | arg1, arg2 | 
... }<br><br></div>
  </div></blockquote>
<br>
That parses, as described above. The two-argument CallExpression must 
return a function that takes the block arguments.<br>
<br>
I see a problem in the grammar in the strawman, now that you mention it:
 no way to produce a simple identifier callee from CallExpression, so no<br>
<br>
  map {|e| e*e}<br>
<br>
only<br>
<br>
  v.map {|e| e*e}<br>
<br>
or<br>
<br>
  get_map() {|e| e*e}<br>
<br>
or similar. I will fix.<br>
<br>
/be<br>
  </div>
</blockquote>
</body></html>