Re: negotiation by failure- list operations



> > % strange version of delete that only deletes
> > % the first matching element...
> > delete(E,[E|T],T).
> > delete(E,[H|T],[H|DT]) :-
> > delete(E,T,DT).

(The above delete/3 needs a cut as well ie delete(E,[E|T],T) :- !. )

Normal efficient delete that deletes all matching elements and
therefore always succeeds regardless of E:

delete(_,[],[]).
delete(E,[E|T],DT) :- !, delete(E,T,DT).
delete(E,[H|T],[H|DT]) :- delete(E,T,DT).

.