Recursion 使用Scheme在目录中递归以增加文件大小

Recursion 使用Scheme在目录中递归以增加文件大小,recursion,scheme,racket,Recursion,Scheme,Racket,所以我问了一些关于这个问题的问题,人们都很友好地试图帮助我,但是我没有这个计划的经验,所以我甚至在开始的时候都遇到了很多麻烦。我们的教授告诉我们他会帮助我们,但他一直没有回复我们的任何电子邮件,作业明天晚上就要交了 (define disk '("D" "main" (("F" "file1.txt" (30) ("D" "sub1" (("F" "file1.txt" (1234)) ("F" "file2.txt" (2345))

所以我问了一些关于这个问题的问题,人们都很友好地试图帮助我,但是我没有这个计划的经验,所以我甚至在开始的时候都遇到了很多麻烦。我们的教授告诉我们他会帮助我们,但他一直没有回复我们的任何电子邮件,作业明天晚上就要交了

(define disk 
'("D" "main"
    (("F" "file1.txt" (30)
     ("D" "sub1"
          (("F" "file1.txt" (1234))
           ("F" "file2.txt" (2345))
           ("F" "file3.txt" (3456))))
     ("D" "sub2" 
          (("F" "file1.txt" (1234))
           ("F" "file2.txt" (2345))
           ("F" "file3.txt" (3456))))))))
我需要递归遍历这个列表,找到所有文件大小的总和。我不知道如何递归。我是否使用car和cdr?成员?指数第一个功能可能涉及使用eq?比较“F”和“D”以查看该列表是否包含文件大小元素

然而,每当我试图找到超过第一个目录的任何内容时,我所能得到的DrRacket返回值都是#false

使用这个,我可以返回“D”。语法对我来说太陌生了,我很难使用if语句来测试它是否是我所需要的。这项任务只剩下一天了,而我整个星期都没能取得任何实际进展。我已经向我的同学们伸出了手,我并不孤单。考虑一下我乞求帮助,因为我在别的地方找不到。


谢谢。

哇!听起来你在这项任务上没有得到多少帮助。看起来您正在学习如何设计程序的第12节:

以下是您需要的:

  • 问题输入的数据定义(特别是问题的文件系统树表示)
  • 数据示例,包括许多更简单的示例
  • 此数据定义的模板
  • 您试图编写的函数的目的语句和标题
  • 您试图编写的函数的测试用例

在那之后,你应该做好准备完成它。

哇!听起来你在这项任务上没有得到多少帮助。看起来您正在学习如何设计程序的第12节:

以下是您需要的:

  • 问题输入的数据定义(特别是问题的文件系统树表示)
  • 数据示例,包括许多更简单的示例
  • 此数据定义的模板
  • 您试图编写的函数的目的语句和标题
  • 您试图编写的函数的测试用例
在那之后,你应该做好准备完成它

(define (file? a)
  (car disk)
  )

(file? disk)