I’m looking for the best (?) general way to implement *nested* iterators in Lua (5.3, of course).
For example: I have an iterator that returns single items when used in a FOR .. IN loop. Each item is treated somehow but that loop, and the result I want it to become available in another iterator.
Easy, but I do NOT want to store all intermediate results in a table, and then traverse the table again, as the size of the table could be too large or even unknown while the iterator is running (until some condition happens that terminates it).
In Python 3, for example, this would be very simple with each routine using YIELD instead of RETURN, and iterators can be nested to an arbitrary level. But, in Lua, I can’t seem to find an obvious (memory efficient) solution. (I would love for Lua to have the same simplicity in this regard.)
Perhaps explicit use of co-routines is one solution, but maybe there is a more immediate way I missed.
Maybe someone can point me to some example.