Existem explicações "simples" sobre o que os Procs e Lambdas são em Ruby?
-
20-09-2019 - |
Pergunta
Existem explicações "simples" sobre o que os Procs e Lambdas são em Ruby?
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