Brian, ts, Generators - I did not know about them. I had a look at this - http://www.ruby-doc.org/stdlib/libdoc/generator/rdoc/classes/Generator.h tml It does not look like this is a good think to do at all, because all the state-management that itertors do for free is lost at the cost of creating another continuation around it. Admittedly this solves the syntactic problem that I was looking for a solution to, but at a very large cost to the runtime. I found a terse description of zip() at http://whytheluckystiff.net/articles/rubyOneEightOh.html Is there a better place I can read up about this? I want to know how this works. In my post, I chose the array.each only as an example. Its not arrays for which I want to do this with - I want to solve the problem for iterator calls. If zip() internally creates a list of values from both iterations, then it does not help me. I want to be able to do the actual computation of the iterator calls in lock-step. Roshan