我在方案中得到了两个列表,并检查我们是否可以从另一个的元素中形成其中一个。换句话说,我检查这是否是一个 . 为此,我实现了一个名为 member? 的函数,它接受一个符号和一个列表,如果此符号在列表中,则此函数从列表中删除该符号并返回新列表。该函数的示例输入输出如下所示:
我正在考虑执行以下操作:由于我们有两个要检查的列表,因此我使用第一个列表和该列表中的每个符号,使用 member? 函数,我检查该符号是否出现在另一个列表中。最后,如果它是一个,那么我们有一个空列表。这里有一些试验可以做到这一点:
(define member?
(lambda (inSym inSeq)
(if (and (symbol? inSym) (sequence? inSeq)) ; can remove?
(remove-member inSym inSeq) ; then remove!
'can-not-remove))) ; otherwise, present an error message
(define
(lambda (inSeq1 inSeq2)
(if (and (sequence? inSeq1) (sequence? inSeq2)) ;if both are sequences
(if(equal? '() (member? (car inSeq1) inSeq2))) ... ???
)
)
我无法组织这里需要的递归。谁能帮我这个?
谢谢你。