The underlying mechanism doesn't matter if it's wrong.<p>Those familiar with the mathematical notation would think:<p><pre><code>     1. '1 &#60; 2 &#60; 3' parses to '(1 &#60; 2) and (2 &#60; 3)'.
     2. '3 - 4 - 5' parses to '(3 - 4) - 5'.
     3. '3 ^ 4 ^ 5' parses to '3 ^ (4 ^ 5)'.
</code></pre>
Ruby's convention is clever, but ultimately wrong, and this is one of the cases.