Я не знаю, что мне здесь не хватает.
Я хочу добавить элемент, если он находится в arg1, но не в arg2, и хочу удалить элемент, если он находится в arg1, но не в arg2.
Я использую условие if, включающее функцию, которая возвращает true, если элемент находится в списке arg2, в противном случае - false. Затем используйте встроенные предикаты append и выберите, чтобы добавить или удалить.
Я ложусь на все мои цели поиска. Я комментирую и раскомментирую в зависимости от того, какой предикат я хочу, добавить или удалить.
includes([],_).
includes([P|Z],S) :-
memberchk(P,S), includes(Z,S).
addop([],list,res).
addop([P|R],list,res) :-
includes(P,s0) -> addop(R,list,res) ; append(P,list,res),
addop(R,list,res).
rem([],list,res).
rem([P|R],list,res) :-
includes(P,list) -> rem(R,list,res) ; select(P,list,res),
rem(R,list,res).
Спасибо за помощь.