Domanda

Ci sono spiegazioni "semplici" di ciò che proc e lambda sono in Ruby?

È stato utile?

Soluzione

Lambda (che esistono in altre lingue oltre) sono come funzioni ad hoc, creati solo per un utilizzo semplice, piuttosto che per eseguire alcune azioni complesse.

Quando si utilizza un metodo come Array#collect che prende un blocco nel {}, si sta essenzialmente creando un lambda / proc / blocco solo per l'utilizzo di tale metodo.

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

funzioni anonime su Wikipedia, e un po 'other SO domande per le sfumature della lambda vs. Proc .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top