What can procs and lambdas do that functions can't in ruby
- by SecurityGate
I've been working in Ruby for the last couple weeks, and I've come to the subject of procs, lambdas and blocks. After reading a fair share of examples from a variety of sources, I don't how they're much different from small, specialized functions. It's entirely possible that the examples I've read aren't showing the power behind procs and lambdas.
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)
This function, proc, and lambda do the exact same thing, just slightly different. Is there any reason to choose one over another?