我知道如何从列表中删除一个元素,但是有没有办法从列表中删除多个元素?例如,
deletelist([a,b,c,a,b],[a,c],X)
X = [b,b] % delete a and c from the list.
最佳答案
SWI-Prolog 提供 subtract/3
:
?- subtract([a,b,c,a,b], [a,c], X).
X = [b, b].
?- listing(subtract).
lists:subtract([], _, []) :- !.
lists:subtract([A|C], B, D) :-
memberchk(A, B), !,
subtract(C, B, D).
lists:subtract([A|B], C, [A|D]) :-
subtract(B, C, D).
关于list - Prolog 从列表中删除多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6094500/