方案:比较列表大小
|
我的计划程序有问题。我正在尝试接受2个列表并比较它们的大小,如果大小相等,则返回true,否则返回false。每个原子的值无关紧要。
例:
(structeq \'(a (b(c))) \'(1(2(3)))) => #t
(structeq \'(x) \'(()) => #f
这是我的代码:
(define (structeq list1 list2)
(cond ((null? list1) list2)
(eq? (length list1) (length list2))))
(structeq \'(a b c d) \'(a b c))
但是,这将返回最后一个列表的大小。我要去哪里错了?
编辑:取消此问题。我想通了,我只需要删除cond语句。
没有找到相关结果
已邀请:
2 个回复
翱抹村
一旦找到较短列表的末尾,它将停止。
混侩闯空坷
您代码中的这一行有一个谓词,但没有结果。如果它们相等,则要返回#t。 当列表的长度不相等时,添加一个else大小写来捕获也将是很好的。例如:(其他#f) 在这里阅读更多关于条件句的信息。