Я пытаюсь сделать программу в прологе, что будет делать что-то вроде этого:Пролог перечисляет разница
diffSet([a,b,c,d], [a,b,e,f], X).
X = [c,d,e,f]
Я написал:
diffSet([], _, []).
diffSet([H|T1],Set,Z):- member(Set, H), !, diffSet(T1,Set,Z).
diffSet([H|T], Set, [H|Set2]):- diffSet(T,Set,Set2).
Но таким образом я могу получить только элементы первый список. Как я могу извлечь элементы из второго?
@edit: элемент проверки, если H находится в Set
member([H|_], H).
member([_|T], H):- member(T, H).
Почему вы удаляете дубликаты из второго списка, но не с первого? – false
@false: delete (T1, H, T2) должен работать, я думаю – CapelliC