我在使用地图时遇到了一些麻烦。
我将二叉树定义为列表,并且我有几个函数可以使用它们。我应该想出几个测试用例然后运行它们。我预定义了几棵树。但是,为了节省时间,我想将测试用例作为带有 map 的批处理运行。
例如,我有以下树:
(define ctree0 '()) ; 0 nodes
(define ctree1 '("Apple" () ())) ; 1 node
(define ctree4 '("Candy" ("Artichoke" ("Apple" () ()) ()) ("Doughnut" () ()))) ; 4 nodes
我有以下功能:
(define empty?
(lambda (t)
(null? t)
)
)
为了节省时间,我定义了一个列表列表:
(define ctrees '(ctree0 ctree1 ctree4))
然后尝试运行以下命令;
(map empty? ctrees)
这产生了:
(#f #f #f)
正确的结果应该是(#t #f #f)
,这就是我单独测试它们时得到的结果)。
我怎样才能解决这个问题?我尝试过删除抑制评估的前引号,但随后我显然收到有关列表无法评估的错误。