Я пытаюсь выполнить каррирование в 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]
Я получаю ошибку
func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError)
из func_test.rb: 24: in `'
Но если я сделаю
plus = lambda {|a,b| a+ b}
, похоже, это сработает. Но, печатая плюс после назначения с помощью лямбды, оба способа возвращают один и тот же тип объекта. Что я неправильно понял?