I'm trying to do some currying in ruby:

def add(a,b)
  return a+b
end

plus = lambda {add}
curry_plus = plus.curry
plus_two = curry_plus[2] #Line 24
puts plus_two[3]

I get the error

func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError)

from func_test.rb:24:in `'

But if I do

plus = lambda {|a,b| a+ b}

It seems to work. But by printing plus after the assigning with lambda both ways return the same type of object. What have I misunderstood?

Edit
Report