Lambdas and procs store callable behavior in variables.

Lambdas and Procs

lambdas_procs.rb
factor = 
scale = ->(number) { number * factor }
numbers = [1, 2, 3]

scaled = numbers.map { |number| scale.call(number) }
scaled_text = scaled.join("/")

puts "factor=#{factor}"
puts "scaled=#{scaled_text}"
puts "last=#{scaled.last}"
factor = 
scale = ->(number) { number * factor }
numbers = [1, 2, 3]

scaled = numbers.map { |number| scale.call(number) }
scaled_text = scaled.join("/")

puts "factor=#{factor}"
puts "scaled=#{scaled_text}"
puts "last=#{scaled.last}"
factor = 
scale = ->(number) { number * factor }
numbers = [1, 2, 3]

scaled = numbers.map { |number| scale.call(number) }
scaled_text = scaled.join("/")

puts "factor=#{factor}"
puts "scaled=#{scaled_text}"
puts "last=#{scaled.last}"
callable object A lambda can be passed around and called later with `call`.