T. Onoma wrote:

>that said, now perhaps someone can explain to me why the #call is need? is 
>there some reason the interpretor can't deal with just
>
>  p(a,b) 
>
>couldn't Ruby just give precedence to proc evaluation similiar to local 
>precedence?
>  
>
This was discussed over the summer as I recall.  It opens up a whole can 
of worms.

For example, function calling syntax for Ruby can be either

    p(a,b)

or

    p a, b

So do you allow callable objects in the latter mode? This is all 
essentially making
functions/methods first class in Ruby.  However, if you do this, then while

    foo.meth arg1, arg2, ...

is clear,

    foo.meth

isn't. It could either be the first class method 'meth' of the object 
'foo', or the result
of calling the method 'meth' of 'foo'.  In other words, you need to 
switch to explicit
method call semantics like Python:

    foo.meth is a method object,
    foo.meth() is the result of calling the method

So if you allow callable objects, and run it to its logical conclusion, 
you end up
needing parentheses (which I don't think everyone's wild about).

I'm sure there's stuff I'm leaving out. Search the ruby-talk archives 
for the whole
big discussion if you're interested.

- Dan