>> dariodaic
/
-
functionalities gained by X
------------------------------------------------------
time invested in learning X
X - Enumerator class
few_iterators = [:map, :select, :sort, :inject, :count]
for iterator in few_iterators do
puts "There is a 'for' loop in Ruby!? ^^"
end
enumerator = Enumerator.new do |yielder|
yielder.yield 1
yielder.yield 2
yielder.yield 3
end
enumerator.map { |n| n * 100 }
VS
METHOD
VS
INSTANCE
3 ways to create an enumerator:
#learnbydoing
What does it provide in return?
Way of manipulating execution of internal iteration.
Is it simple and intuitive? No, it's complex and weird.
Is it neccessary? No, it might come in hand sometimes.
So, is it worth it?
Its worth is inversely proportional to that of Enumerable.
Mmm...barely. :)
References
Benjamin Tan Wei Hao:
http://www.sitepoint.com/implementing-lazy-enumerables-in-ruby/
Pat Shaughnessy:
http://patshaughnessy.net/2013/4/3/ruby-2-0-works-hard-so-you-can-be-lazy
David A. Black:
https://www.manning.com/books/the-well-grounded-rubyist-second-edition