Pergunta

Existem explicações "simples" sobre o que os Procs e Lambdas são em Ruby?

Foi útil?

Solução

Lambdas (que também existem em outros idiomas) são como funções ad hoc, criadas apenas para um uso simples, em vez de executar algumas ações complexas.

Quando você usa um método como Array#collect Isso leva um bloco em {}, você está criando essencialmente um lambda/proc/bloco apenas para o uso desse método.

a = [1, 2, 3, 4]
# Using a proc that returns its argument squared
# Array#collect runs the block for each item in the array.
a.collect {|n| n**2 } # => [1, 4, 9, 16]
sq = lambda {|n| n**2 } # Storing the lambda to use it later...
sq.call 4 # => 16

Ver Funções anônimas na Wikipedia, e alguns Outras perguntas para as nuances de lambda vs. Proc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top