Прежде всего, обратите внимание, что это домашнее задание, поэтому я не ищу простой код или что-то в этом роде, просто для того, чтобы кто-нибудь помог мне с моей логикой.
Задание в DrRacket,Вопрос задается следующим образом:
Имеется файловая система, которую мы определили как структуру с двумя полями, именем и содержимым, где содержимое представляет собой список каталогов или файлов;напишите функцию, которая создаст имя файла «.bak» для каждого файла в каталоге, и поместите его сразу после файла.
Я полностью потерян.Моя логика такова: если первым в списке содержимого является файл, просто переделайте каталог с этим файлом и добавьте новый файл с добавлением «.bak».Это насколько я могу понять - я не понимаю, как все устроить, если есть подкаталог ИЛИ как двигаться дальше вниз по списку.
Вот мой зверский код:
(define (backup my-fs)
(cond
[(empty? (dir-contents my-fs)) empty]
[(file? (first (dir-contents my-fs))) (make-dir (dir-name my-fs) (append (backup-list (first (dir-contents my-fs)))(rest (dir-contents my-fs))))]
[(dir? (first (dir-contents my-fs))) (backup (first (dir-contents my-fs)))]))
Может кто-нибудь помочь мне объяснить это?