Похоже на вопрос кода ...
Примером этого может быть случай, когда у вас есть списки списков, и вам нужно рекурсивно обрабатывать каждый уровень списка. В псевдокоде это могло появиться ...
processList (список) {
foreach (элемент в списке) {
если item.haslist ()
processList (item.getList ())
}
}