Я пытаюсь написать функцию Scala, чтобы перечислить все файлы/подкаталоги в заданной директории, но я хотел бы сделать ее хвостовой рекурсивной. Прежде чем я потрачу больше времени на это, это даже достижимая цель, или я должен придерживаться регулярной рекурсии? Я просто хочу знать, что это возможно, поскольку я хотел бы понять это для себя. Хороший опыт обучения и все такое. Благодаря!Возможно ли рекурсивно пересекать каталог в Scala?
0
A
ответ
1
мне кажется, что вам нужен некоторый тип стека для обхода дерева, так что если вы избегаете стек системы вы должны реализовать свой собственный (см http://www.scala-lang.org/old/node/7984)
+0
Не уверен, почему это получило голос, потому что это довольно правильно. Вам нужно как-то сохранить свою позицию в дереве. Это может быть неявно в стеке вызовов (и ваша функция не будет хвостичной рекурсивной) или явно в какой-либо другой структуре данных, переданной от вызова к вызову. –
вы должны иметь поддержку симлинок ли? –
Хм, не думаю. – jbrookins13
Тогда ваша задача сводится к обычному обходу дерева, который, как известно, реализуется хвостовым рекурсивным способом. –