On Wed, 14 Jul 1999, you wrote: >Hello, >I was wondering why a proc has to be called via >>> ... >>> >>> method = obj.method(:method_name) >>> mathod.call(args) >>> >>> ... > >as opposed to using the parentheses; something like > > f = obj.method(:method_name) > f(args) > >would be far cleaner. Does the syntax f() have a fixed, predefined meaning? I don't know (matz?), but in the meanwhile you could use f = obj.method(:method_name) f[args] I have had a quick look into the sources. I think, that `()' is only used to lexically group expressions. There is nothing behind. Whereas `[]' is really an operator, which can be mapped to a method, if desired. In your example above `f' would contain a `Proc' instance. The class `Proc' overwrites the operator `Proc#[]' to perform a method call. > >cheers, >Michael Same to you, \cle