I'm struggling to see a good use for them, if I had to recreate the example you did without iterators I would simply have the function return an array of line, and then loop through the array. Not much of an improvement. I would like to see them used in a place where conventional methods would be hard or tedious.