我有以下列表示例,其中第一行有结果,第二行有过滤器,我只需保留与过滤器中至少一对配对的结果。
(((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,因为他们的城市匹配过滤器。在第二个例子中,它只是将他们玩的每个游戏添加到结果中。
虽然您必须检查第一行的每个条目,但要使match
正常工作,您必须获得第二行中至少一个条目的#t