From: Gavin Sinclair Date: 2003-11-28T10:40:34+09:00 Subject: Re: Controlled block variables From T. Onama: > But I wonder, couldn't the only exception be made for Proc? So without > the perens a Proc is a Proc, with perens it's evaluated. > > foo.aproc is a Proc object, > foo.aproc() is the result of calling the Proc > > This kind of distinction is already made with locals vs. methods. Just > b/c Procs face the problem doesn't mean it has to be extend to all. Or > am I missing something further? 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. Gavin