With a solid understanding of how generators iterate then pause at a yield
, we can now pass values into the next
method and receive them where the generator paused then continue to the next iteration.
createReverseIterator is not used by the function in this example