2014-09-08 2 views
0

Я пытаюсь написать функцию Scala, чтобы перечислить все файлы/подкаталоги в заданной директории, но я хотел бы сделать ее хвостовой рекурсивной. Прежде чем я потрачу больше времени на это, это даже достижимая цель, или я должен придерживаться регулярной рекурсии? Я просто хочу знать, что это возможно, поскольку я хотел бы понять это для себя. Хороший опыт обучения и все такое. Благодаря!Возможно ли рекурсивно пересекать каталог в Scala?

+0

вы должны иметь поддержку симлинок ли? –

+0

Хм, не думаю. – jbrookins13

+0

Тогда ваша задача сводится к обычному обходу дерева, который, как известно, реализуется хвостовым рекурсивным способом. –

ответ

1

мне кажется, что вам нужен некоторый тип стека для обхода дерева, так что если вы избегаете стек системы вы должны реализовать свой собственный (см http://www.scala-lang.org/old/node/7984)

+0

Не уверен, почему это получило голос, потому что это довольно правильно. Вам нужно как-то сохранить свою позицию в дереве. Это может быть неявно в стеке вызовов (и ваша функция не будет хвостичной рекурсивной) или явно в какой-либо другой структуре данных, переданной от вызова к вызову. –