<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 12, 2012, at 3:41 PM, Jon Zeppieri wrote:</div><blockquote type="cite"><div><blockquote type="cite"><font class="Apple-style-span" color="#000000"><br></font></blockquote><br>An additional consideration: for a block lambda's completion value to<br>be another block lambda, the {( syntax would require parenthesis,<br>while the {| syntax would not:<br></div></blockquote><div><br></div><div>No, since a <i>Statement</i> can not begin with a { character parenthesis would be required in using either syntax.  Also note that they would also be required if completion value of the <i>BlockLambda</i> is provided by an object literal:</div><div>    </div><div>       {| a,b | ({x: a,y: b})}   //syntax error if parenthesis around object literal are removed</div><div><br></div><div><br></div><blockquote type="cite"><div><font class="Apple-style-span" color="#000000">...<br></font><br>With the grammar François is suggesting, this would be a syntax error<br>(I think), since the body of a block lambda is a StatementList_opt.<br>The {| syntax, on the other hand, can accommodate block lambdas as<br>expression statements, though, given another token of lookahead<br>(again, I think).<br></div></blockquote><div><br></div>With two token look-ahead a | <i>BlockLambda</i> could be allowed at the head of a statement, but it still would not enable unparenthesized object literals at the head of a statement.  It seems like a cognitive burden to allow one  but not the other.  A simple "{ at the start of an expression statement must be parenthesized" rules seems easiest to learn and remember.</div><div><br></div><div>Allen<br><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><br><blockquote type="cite"><div><br></div></blockquote><blockquote type="cite"><div><blockquote type="cite"><font class="Apple-style-span" color="#000000"><br></font></blockquote></div></blockquote></div><br></body></html>