Ho lavorato in Ruby per le ultime due settimane e sono arrivato al tema di procs, lambda e blocchi. Dopo aver letto una buona dose di esempi da una varietà di fonti, non so come siano molto diverse dalle funzioni piccole e specializzate. È del tutto possibile che gli esempi che ho letto non mostrino il potere dietro procs e lambda.
def zero_function(x)
x = x.to_s
if x.length == 1
return x = "0" + x
else
return x
end
end
zero_lambda = lambda {|x|
x = x.to_s
if x.length == 1
return x = "0" + x
else
return x
end
}
zero_proc = Proc.new {|x|
x = x.to_s
if x.length == 1
puts x = "0" + x
else
puts x
end
}
puts zero_function(4)
puts zero_lambda.call(3)
zero_proc.call(2)
Questa funzione, proc e lambda fanno esattamente la stessa cosa, solo leggermente diversa. C'è qualche ragione per sceglierne uno rispetto all'altro?