Ruby · Intermediário · Inglês · Técnico
lambda
Proc criado com lambda ou ->, que se comporta como um método: confere o número de argumentos e usa return só para sair dele mesmo.
Onde usar
Use quando quiser um trecho chamável e previsível, como estratégias, callbacks ou scopes do Rails. Errar a quantidade de argumentos levanta ArgumentError, o que ajuda a achar bugs cedo.
Em código
soma = ->(a, b) { a + b }
puts soma.call(1, 2) # => 3
puts soma.lambda? # => true
soma.call(1) # ArgumentErrorExemplos
The scope takes a lambda so it runs on every call.
O scope recebe um lambda para rodar a cada chamada.
Calling the lambda with one argument raised ArgumentError.
Chamar o lambda com um argumento levantou ArgumentError.
Cuidado
Não presuma que seja igual a proc: o return do lambda volta só dele, e a aridade é rígida.
Sinônimos
função anônima
Origem
Do cálculo lambda, de Alonzo Church.