У меня есть следующий пример списков, где в первой строке у меня есть результат, а на втором - фильтр, и мне нужно сохранить только результаты, которые соответствуют хотя бы одной из пар в фильтр.Пересечение схемы между списками пар
(((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, по крайней мере, один из входов на второй линии
Возможный дубликат [Пересечение большего количества списков в Схеме] (http://stackoverflow.com/questions/15851228/intersect-more-lists-in-scheme) –
Да, спасибо :) – andrei