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