2013-04-06 56 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