foo = lambda {|x|
return lambda {|y| return x+y}}
puts (foo.call(3)).call(4)
It works finally, but it's just too verbose.
Can anyone suggest a shorter, programmer friendlier way of writing
this?
As said before you don't need the returns, and you don't need so many
parentheses.
Can you let us know if this works for you?
irb(main):004:0> foo = lambda {|x| lambda {|y| x + y}}
=> #<Proc:0xb7b9c758@(irb):4>
irb(main):005:0> foo.call(3).call(4)
=> 7
irb(main):006:0> puts foo.call(3).call(4)
7
=> nil
irb(main):007:0> puts foo[3][4]
7
=> nil
Jesus.