Scheme 方案对列表之间的交集

Scheme 方案对列表之间的交集,scheme,racket,Scheme,Racket,我有下面的列表示例,其中第一行有一个结果,第二行有一个过滤器,我只需要保留与过滤器中至少一对匹配的结果 (((john . ?x) (new-york . ?city)) ((mike . ?x) (chicago . ?city)) ((mary . ?x) (london . ?city))) (((new-york . ?city)) ((chicago . ?city))) (((john . ?x) (new-york . ?city)) ((mike . ?x) (chicago

我有下面的列表示例,其中第一行有一个结果,第二行有一个过滤器,我只需要保留与过滤器中至少一对匹配的结果

(((john . ?x) (new-york . ?city)) ((mike . ?x) (chicago . ?city)) ((mary . ?x) (london . ?city)))
(((new-york . ?city)) ((chicago . ?city)))

(((john . ?x) (new-york . ?city)) ((mike . ?x) (chicago . ?city)) ((mary . ?x) (london . ?city)))
(((john . ?x) (air-hockey . ?game)) ((mike . ?x) (tennis . ?game)))
我遇到的问题是,结果和过滤器都有数量可变的参数,我不知道如何一次取出一个元素进行比较。我需要一些提示,因为这是一个家庭作业

匹配在第一个示例中意味着john和mike,因为他们的城市匹配过滤器。而在第二个例子中,它只是将他们玩的每一个游戏添加到结果中


虽然您必须检查第一行中的每个条目,但要使
匹配
有效,您必须为第二行中的至少一个条目获得#t

从您的问题中我不清楚“匹配”在本文中的含义。我建议您首先要开发一个helper函数,它从第一行接受一个元素,从第二行接受一个元素,当它们匹配时返回“true”


另外,我肯定会先写一些测试用例:)。

从你的问题来看,我不清楚“匹配”在这个上下文中是什么意思。我建议您首先要开发一个helper函数,它从第一行接受一个元素,从第二行接受一个元素,当它们匹配时返回“true”


另外,我肯定会先写一些测试用例:)。

我相信这是被问到的同一个问题,看看我的。

我相信这是被问到的同一个问题,看看我的。

可能重复的是,谢谢:)可能重复的是,谢谢:)