member(X,[X|T]).
member(X,[H|T]):-member(X,T).
delfstocc(X,[X|T],T).
delfstocc(X,[Y|T],[Y|T1]):-delfstocc(X,T,T1),!.
delallocc(X,L,L1):-member(X,L),delfstocc(X,L,R),!,delallocc(X,R,L1);write(L).
ـــــــــــ
まず、カットを使用せずにこのコードを書き、次に完璧な答えが得られるまで各述語の後にカット演算子を配置しようとしましたが、実際にはカットを使用した後の動作がわかりません。カット演算子がプロローグのマッチングの進行を停止することは知っていますが、正しく使用できないため、このコードをトレースするのに役立ちます。このコードは、リスト内の要素のすべての出現を単純に削除します。