Хотя я бы хотел решить эту проблему в python, я застрял в Delphi на этот раз. У меня есть вложенные списки (на самом деле объекты с вложенными списками в качестве свойств, но не имеют значения), и я хочу перебирать их в генераторе. То есть я хочу написать функцию Next, которая дает мне следующий элемент из листьев дерева, описанных вложенными списками.
Например, допустим, у меня есть
[[1,2,3],[4,5],[],[6],[7,8]]
Я хочу, чтобы 8 последовательных вызовов Next () вернули 1..8.
Как я могу сделать это на языке без выхода и генераторов?
Обратите внимание, что глубина вложения фиксирована (2 в этом примере, 4 в реальной жизни), но приветствуются ответы, которые решают более общий случай, когда глубина является переменной.
РЕДАКТИРОВАТЬ: Извините, я должен был упомянуть, это Delphi 2007.