From: matz@... (Yukihiro Matsumoto) Date: 2003-08-15T16:37:49+09:00 Subject: Re: Overloading () Hi, In message "Re: Overloading ()" on 03/08/15, "Dave Benjamin" writes: |I'm the "Python guy" from comp.lang.functional. ;) I'd still like to |understand why the () operator can't be overloaded in Ruby, necessitating |the use of [] for Proc objects instead. What was the motivation behind that |restriction? Because you don't always need parenthesises for method calls, for example, foo(1,2,3) foo 1,2,3 obj.bar() # calling obj's method bar obj.bar # still calling bar (*) The last line is very important difference from Python. Python gives you the method object "bar". It's functional, but Ruby way allows attribute abstraction. In addition, Ruby has separate namespace for variables and methods, for example, def foo puts 55 end foo = 42 puts foo # "42" puts foo() # "55" This also makes () hard to be overloaded. matz.