Sto avendo difficoltà a comprendere ciò che rende il seguente comportamento possibile (tratto dal libro rubino piccone):Lambda Comportamento
def power_proc_generator
value = 1
lambda {value += value}
end
power_proc = power_proc_generator
3.times {puts power_proc.call} # => 2,4,8
3.times {puts power_proc_generator.call()} # => 2,2,2
Io non vedo come l'oggetto "power_proc" consente il valore di continuare a raddoppiare come Suppongo (erroneamente sembra) che ogni chiamata riassegna il valore a 1.
La mia domanda è perché "3.times {puts power_proc.call}" restituisce "2,4,8" e non "2, 2,2 "?
Prova a indicare la tua domanda come una domanda, quindi c'è meno confusione. – knownasilya
Mi dispiace, ho chiarito con una domanda vera e propria. – Discorick