В следующем коде я читал о замыканиях, но задавался вопросом, что произойдет, если в функции будет более одного объекта proc. Поэтому, когда функция была вызвана, была вызвана только последняя лямбда. Я проверил это ниже. (интерактивно: http://labs.codecademy.com/BAZX#:workspace)
def n_times(thing)
lambda {|n| puts "first called"; thing * n}
lambda {|n| puts "second called"; thing - n}
end
test = n_times(2)
puts test.call(3)
Почему первая лямбда пропущена?
puts n_times(3).call(2) => second called 1
Моресо, почему следующее недействительно? Редактировать: удалено, глупая ошибка. Спасибо ниже :)