On Friday 28 November 2003 02:40 am, Gavin Sinclair wrote:
> On http://ruby-doc.org, you can find a link to "Ruby Eye for the Python
> Guy", which contains a link to an explanation of the difference between
> Python and Ruby in terms of "methods as first class objects".  That
> document, on onestepback.org, is essential reading.
>
> In short, the message-passing paradigm is paramount in Ruby.  You may say
> that 'foo.aproc is a Proc object', but the reality is that 'foo.aproc' is
> the result of sending the message 'aproc' to 'foo'.  Nothing more, nothing
> less.  And there are good reasons why that won't change.  Making parens
> optional is just a superficial reason.

Thanks Gavin. I read it over. And I certainly understand the distinction. To 
sum up: foo.aproc is sending a message called 'aproc' to the object 'foo'. 
But it's still returning an Proc object. Yes? There's probably something 
obvious that I'm just overlooking here, but I don't see the reason why Ruby 
can't infer the #call message when a Proc object (or Method object for that 
matter) is returned given with parens.

  aproc()   # -> aproc.call()

in a fashion similiar to how it can infer self as a reciever.

-t0