<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 24, 2015 at 11:08 AM, Claude Pache <span dir="ltr"><<a href="mailto:claude.pache@gmail.com" target="_blank">claude.pache@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class=""><blockquote type="cite"><div>Le 24 sept. 2015 à 16:11, Brendan Eich <<a href="mailto:brendan@mozilla.org" target="_blank">brendan@mozilla.org</a>> a écrit :</div><br><div>


<div style="background-color:rgb(255,255,255)" bgcolor="#FFFFFF" text="#000000">And indeed apart from dot (a special form 
whose right operand must be a lexical identifier-name) and square 
brackets (which isn't an infix operator per se), unary operators bind 
tighter than binary in JS as in C and other C-derived languages.<br></div></div></blockquote><div><br></div></span><div>I just wonder why it is important that unary binds tighter? For instance, before I carefully studied the issue of this thread, I have never expected that unary minus binds tighter than binary</div></div></div></blockquote><div><br></div><div><br></div><div>Before Jason pointed out the discrepancy:</div><div>  * all of us on the committee who were engaged with the proposal</div><div>  * including myself,</div><div>  * all those who reviewed the proposal, </div><div>  * and all those who implemented the proposal </div><div>had the opposite naive expectation. That's the point. In the absence of learning about this case specifically, many people will be unpleasantly surprised by #2, and many by #3. Therefore #4 wins. (Actually, it just won ;).)</div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div> multiplication operator in expressions like `-2*x` (although it does not matter in that case).</div><span class=""><br><blockquote type="cite"><div><div style="background-color:rgb(255,255,255)" bgcolor="#FFFFFF" text="#000000">

<br>

without having to parenthesize unduly<span style="font-family:monospace"></span>, but one cannot write<br>

<br>

<big><span style="font-family:monospace">let z = -x ** y;</span></big><br>

<br>

The user is forced by an early error to write either <span style="font-family:monospace">(-x)**y</span> or <span style="font-family:monospace">-(x**y)</span>.<br></div></div></blockquote><div><br></div></span><div>In traditional math notation, when you mean `(-x)**n`, you write (-x)ⁿ with mandatory parentheses, so I don’t expect that many people will be tempted to miswrite it `-x ** n`.</div><div><br></div><div>Making the parentheses mandatory here will be somewhat annoying in perfectly reasonable expressions, where you usually don’t use parentheses in real math notation., like:</div><div>```</div><div>let s2 =  - x**2 - y**2 - z**2 +  t**2</div><div>```</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>—Claude</div><div><br></div></font></span></div><br></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">    Cheers,<br>    --MarkM</div>
</div></div>