<html><div style='background-color:'><DIV>
<P><BR><BR></P></DIV>
<DIV></DIV>
<DIV></DIV>&gt;From: Dave Thomas <DAVE / PRAGMATICPROGRAMMER.COM>
<DIV></DIV>&gt;Reply-To: ruby-talk / ruby-lang.org 
<DIV></DIV>&gt;To: ruby-talk / ruby-lang.org (ruby-talk ML) 
<DIV></DIV>&gt;Subject: [ruby-talk:19076] Re: a+, a++, a+++, a++++, a+ ---, a + *** 
<DIV></DIV>&gt;Date: Sat, 4 Aug 2001 00:17:05 +0900 
<DIV></DIV>&gt; 
<DIV></DIV>&gt;"Dat Nguyen" <THUCDAT / HOTMAIL.COM>writes: 
<DIV></DIV>&gt; 
<DIV></DIV>&gt; &gt; a = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # =&gt; 0 
<DIV></DIV>&gt; &gt; 
<DIV></DIV>&gt; &gt; a+ 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # =&gt; 1 
<DIV></DIV>&gt; &gt; 
<DIV></DIV>&gt; &gt; a++ 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # =&gt; 1 
<DIV></DIV>&gt; &gt; 
<DIV></DIV>&gt; &gt; a+++ 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # =&gt; 1 
<DIV></DIV>&gt; &gt; 
<DIV></DIV>&gt; &gt; a+ ++++++ 1&nbsp;&nbsp; # =&gt; 1 
<DIV></DIV>&gt; &gt; 
<DIV></DIV>&gt; &gt; a + --- 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #=&gt; 
<DIV></DIV>&gt; &gt; 
<DIV></DIV>&gt; &gt; a + *** 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #=&gt; SyntaxError: compile error 
<DIV></DIV>&gt; &gt; (irb):28: parse error 
<DIV></DIV>&gt; &gt; 
<DIV></DIV>&gt; &gt; Why? 
<DIV></DIV>&gt; 
<DIV></DIV>&gt;Because '+' is both a unary and a binary operator, and '*' isn't. 
<DIV></DIV>&gt; 
<DIV></DIV>&gt;Now, for extra credit, why is this OK 
<DIV></DIV>&gt; 
<DIV></DIV>
<P>&gt; a+ 1 </P>
<P>a.+(1)</P>
<DIV></DIV>&gt; 
<DIV></DIV>&gt;and this isn't: 
<DIV></DIV>&gt; 
<DIV></DIV>
<P>&gt; a +1</P>
<P>sending to the&nbsp;root&nbsp;object the message&nbsp;"a +1" does not fail if the following was defined:</P>
<P>def a(b)</P>
<P>end</P>
<P>but the next question raised. I cannot override the above with:</P>
<P>def a(b, c)</P>
<P>end</P>
<P>and expect:</P>
<P>a +1</P>
<P>or</P>
<P>a&nbsp; 2&nbsp; 3</P>
<P>to work. The list of args is different. Why doesn't it work?</P>
<P>Regards</P>
<P>Dat</P>
<DIV></DIV>&gt; 
<DIV></DIV>&gt;Regards 
<DIV></DIV>&gt; 
<DIV></DIV>&gt; 
<DIV></DIV>&gt;Dave 
<DIV></DIV></div><br clear=all><hr>Get your FREE download of MSN Explorer at <a href='http://go.msn.com/bql/hmtag_itl_EN.asp'>http://explorer.msn.com</a><br></html>