Florian Frank:
> Try the 1.9 cvs version:
> 
> irb(main):001:0> a = lambda { |x| x * 2 }
> => #<Proc:0xb7c6118c@(irb):1>
> irb(main):002:0> a(1)
> => 2
> irb(main):003:0> a 1
> => 2

I don't know whether I like that. If I understand correctly, it means that
a is an Object, whilst a() calls a.call. So the rule "parentheses are
optional" is no longer valid now.

To me, the following would make more sense (though it isn't Ruby anymore,
neither is it pragmatic):

a = define(:b) do |x|
  x*2
end

a.class     --> Method
a.call(2)   --> 4
a[2]        --> 4

b(2)        --> 4
b 2         --> 4

define(:c, a)
c(2)        --> 4