Ruby ha differenze tra Proc creati tramite Proc.new
e lambda
(o l'operatore ->()
in 1.9). Sembra che i Proc non-lambda divideranno una matrice passata attraverso gli argomenti del blocco; I processi creati tramite lambda no.Differenze tra Proc e Lambda
p = Proc.new { |a,b| a + b}
p[[1,2]] # => 3
l = lambda { |a,b| a + b }
l[[1,2]] # => ArgumentError: wrong number of arguments (1 for 2)
Qualcuno ha qualche idea delle motivazioni dietro questo comportamento?
Si può già sapere questo, ma questo funziona: 'l = lambda {| (a, b) | a + b}; l [[1,2]] # => 3' – Phrogz