Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的目标是从此列表中找到
(A B C D E G)
新清单
(B D G)
但是我的代码不起作用。
(define (fun lst) (cond ((null? lst) '()) ((null? (cdr lst) '()) (else (cons ( cadr lst) ( fun lst))))
我得到(B C D E G)。我哪里出错了?
(B C D E G)
您的函数没有做任何事情,并且您确实没有指定要测试的内容。如果您真的只想从该特定列表中获取 BDG,那么您需要做的就是为每个角色进行这些每个测试,(equal? (car lst) 'B) 等等。
相反,如果该函数假设只打印列表中的所有其他字符,那么您需要构建一种方法来做到这一点。例如,您现在拥有的递归基本情况是正确的,并且空列表应该返回一个空列表。否则,如果它不为空,则返回列表的 cdr,然后使用它。
如果您仍然无法找出答案,请开始将其写在纸上,看看不同的测试会做什么。您需要想出一种方法来找到其他所有角色。