Итак, этот шаблон:
def foo(&block) block.call end foo lambda { puts 'hi' }
В результате получается:
wrong number of arguments (1 for 0) (ArgumentError)
Использование Ruby 1.9.3.
Am Iделает это неправильно?
Вам не нужна лямбда, только блок:
def foo(&block) block.call end foo { puts 'hi' }
Если вы хотите передать процедуру, используйте обычный параметр:
def foo(ohai) ohai.call end foo lambda { puts 'hi' }