4

を含むすべてのリストをリストのリストから削除したいと思います[['One', _], _]delete_all私の場合を除いて、常に機能する次の句を作成しました。

delete_all(_,[],[]) :- !.
delete_all(X,[X|Tail],List) :-
    !,
    delete_all(X,Tail,List).
delete_all(X,[A|Tail],[A|List]) :-
    delete_all(X,Tail,List).

例:(これはうまくいきます)

?- delete_all(3,[3,4,3,5,3],K).
K = [4, 5] .

しかし、これはうまく機能しません:

delete_all([['One', _], _], [[['One', 'Six'], 94],
    [['One', 'Ten'], 13], [['Two', 'Nine'], 35]], Y).
Y = [[['One', 'Ten'], 13], [['Two', 'Nine'], 35]].

最初の要素だけを削除するのはなぜですか? 何が間違っている可能性がありますか?

4

2 に答える 2