元:「remove 述語の定義―リスト[a:1, a:2]から「a:_」をすべて取り除いた結果は?」(http://codetter.com/?p=1077)
特にメリットはない。
元:「remove 述語の定義―リスト[a:1, a:2]から「a:_」をすべて取り除いた結果は?」(http://codetter.com/?p=1077)
特にメリットはない。
% can_unify/2% 「can_unify(X, Y) が成功する」⇔「X = Y が成功する」、ただし単一化は行われない。can_unify(X, Y) :-setof(Z, (Z = X, X = Y), [_|_]).?- can_unify(a:_, a:1).?- \+ can_unify(b:_, a:_).remove(_, [], []).remove(E, [H|Src], Dst ) :- can_unify(E, H), !, remove(E, Src, Dst).remove(E, [H|Src], [H|Dst]) :- remove(E, Src, Dst).?- remove(a:_, [a:1, a:1, a:2, b:2], [b:2]).