Скажем, у меня есть две лямбды в Ruby:
lambda1 = -> { puts 'lambda1' }
lambda2 = -> {
puts 'lambda2 calls lambda1'
lambda1.()
}
Работает, как и ожидалось:
lambda1.()
# lambda1
lambda2.()
# lambda2 calls lambda1
# lambda1
Но теперь, если я удалю lambda1
, lambda2
перестанет работать:
lambda1 = nil
lambda2.()
NoMethodError: неопределенный метод `call 'для nil: NilClass
Что можно сделать, чтобы" приклеить "мой lambda1
к lambda2
сделать первое неотъемлемой частью второго и избежать этой ситуации?