Functional Ruby Idioms
Lambdas and Procs
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`.