Enumerable Patterns
Lazy Enumerator
A lazy enumerator delays work until values are requested.
Lazy Enumerator
lazy_enumerator.rb
limit =
values = (1..20).lazy
.map do |number|
number * 2
end
.select do |number|
number % 3 != 0
end
.take(limit)
.to_a
puts "limit=#{limit}"
puts "values=#{values.join(",")}"
limit =
values = (1..20).lazy
.map do |number|
number * 2
end
.select do |number|
number % 3 != 0
end
.take(limit)
.to_a
puts "limit=#{limit}"
puts "values=#{values.join(",")}"
limit =
values = (1..20).lazy
.map do |number|
number * 2
end
.select do |number|
number % 3 != 0
end
.take(limit)
.to_a
puts "limit=#{limit}"
puts "values=#{values.join(",")}"
lazy enumerator
Lazy chains are useful when only a small number of results are needed.