2013-04-06 61 views
0

我有以下列表的例子,在第一行我有一个结果,第二个过滤器,我只需要保留至少匹配其中一个对的结果过滤。计划之间的交集之间的交集

(((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))) 

我遇到的问题是,无论是结果和过滤器具有可变数量的参数,我不知道该如何拿出一个元素在同一时间进行比较。我可以使用一些提示,因为这是一项功课。

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

虽然你必须检查每个条目的第一线,为match工作,你就一定得#T为第二行

+1

可能重复[在计划中相交更多列表](http://stackoverflow.com/questions/15851228/intersect-more-lists-in-scheme) – 2013-04-06 22:19:28

+0

是的,谢谢:) – andrei 2013-04-06 22:20:46

回答

2

该条目中的至少一个目前尚不清楚对我从你的问题来看,“匹配”在这方面意味着什么。让我建议你可能首先要开发一个帮助函数,它接受第一行的一个元素和第二行的一个元素,并在匹配时返回“true”。

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

+0

我已更新什么'匹配'意味着:) – andrei 2013-04-06 22:18:22

1

我相信这是同样的问题,被问到here,看看我的answer