Насколько я могу судить, в Ruby существуют три разных типа закрытия: методы, procs и лямбда. Я знаю, что между ними существуют различия, но разве мы не можем просто уйти от одного типа, который вмещает все возможные варианты использования?
Методы уже могут передаваться как procs и lambdas, вызывая self.method(method_name)
, и единственные существенные различия, которые я знаю между procs и lambdas, это то, что lambdas проверяет arity и procs делает сумасшедшие вещи, когда вы пытаетесь использовать return
. Не могли бы мы просто объединить их всех в один и сделать с ним?