首先请注意,这是一个家庭作业问题,所以我不是在寻找直接的代码或类似的东西,只是为了有人可以帮助我解决我的逻辑。
作业在 DrRacket 中。问题问:
给定一个 FileSystem,我们将它定义为一个结构,它有两个字段,名称和内容,其中内容是目录或文件的列表;编写一个函数,为目录中的每个文件创建一个“.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)))]))
任何人都可以帮我解决这个问题吗?