<div dir="ltr"><div>Hello all,</div><div><br></div><div>Why the associativity of <font face="monospace, monospace">Logical{Conjunction,Disjunction}Precedence</font> is &quot;<font face="monospace, monospace">left</font>&quot;?<br></div><div><br></div><div>If you write: <font face="monospace, monospace">A &amp;&amp; B &amp;&amp; C</font>, it&#39;s grouped as <font face="monospace, monospace">(A &amp;&amp; B) &amp;&amp; C</font>.</div><div>This means that the<font face="monospace, monospace"> &amp;&amp;</font> function is <i>always</i> called twice: <font face="monospace, monospace">(&amp;&amp;)((&amp;&amp;)(A, B), C)</font>.</div><div>I feel &quot;right&quot; associativity is more natural:  <span style="font-family:monospace,monospace">(&amp;&amp;)(A</span><span style="font-family:monospace,monospace">, (&amp;&amp;)(B, C))</span><font face="arial, helvetica, sans-serif">,</font><br></div><div><font face="arial, helvetica, sans-serif">because the </font><font face="monospace, monospace">&amp;&amp;</font><font face="arial, helvetica, sans-serif"> function is called only once if </font><font face="monospace, monospace">A</font><font face="arial, helvetica, sans-serif"> is </font><font face="monospace, monospace">false</font><font face="arial, helvetica, sans-serif">.</font></div><div><br></div><div><span style="font-family:arial,helvetica,sans-serif">I know that redundant &amp;&amp; calls are optimized away in most cases.</span><br></div><div><div><font face="arial, helvetica, sans-serif">I also know C and C++ standard says: &quot;The &amp;&amp; operator groups left-to-right&quot;, and most programming languages follow that.</font></div></div><div><br></div><div><font face="arial, helvetica, sans-serif">But why not &quot;</font><font face="monospace, monospace">right</font><font face="arial, helvetica, sans-serif">&quot; </font>associativity<span style="font-family:arial,helvetica,sans-serif">?</span></div><div><span style="font-family:arial,helvetica,sans-serif">What is the difference between logical operators and </span><font face="monospace, monospace">??</font><font face="arial, helvetica, sans-serif"> operator that has &quot;</font><font face="monospace, monospace">right</font><font face="arial, helvetica, sans-serif">&quot; associativity?</font></div><div><br></div></div>