这是从给定列表中删除或删除元素的代码:
remove_elem(X,[],[]).
remove_elem(X,L1,L2) :-
L1 = [H|T],
X == H,
remove_elem(X,T,Temp),
L2 = Temp.
remove_elem(X,L1,L2) :-
L1 = [H|T],
X \== H,
remove_elem(X,T,Temp),
L2 = [H|Temp].
如何修改它,以便我可以从列表中删除每个出现的子列表?
当我试图将一个列表放入一个元素时,它只会删除该元素并且只删除一次。
应该是这样的:
?- remove([1,2],[1,2,3,4,1,2,5,6,1,2,1],L).
L = [3,4,5,6,1]. % expected result