SWI에있는 경우
% base case
sto([],L,[]).
% item isn't found in the other list
sto([H|T],L,[H|T2]):-
\+member(H,L),sto(T,L,T2).
% item is present in the other list
sto([H|T],L,N):-
member(H,L),sto(T,L,N).
member(X,[X|_]).
member(X,[_|T]):-
member(X,T).
그래서 sto
메인 함수 member
기능 검사는 -Prolog는 subtract (+ Set, + Delete, -Result)입니다.
이 방식으로 구현있어 :
%% subtract(+Set, +Delete, -Result) is det.
%
% Delete all elements from `Set' that occur in `Delete' (a set)
% and unify the result with `Result'. Deletion is based on
% unification using memberchk/2. The complexity is |Delete|*|Set|.
%
% @see ord_subtract/3.
subtract([], _, []) :- !.
subtract([E|T], D, R) :-
memberchk(E, D), !,
subtract(T, D, R).
subtract([H|T], D, [H|R]) :-
subtract(T, D, R).
당신은 어떤 다른 프롤로그에서 그 구현을 사용할 수 있습니다 ...
당신이 독특한 요소의 결합을 얻으려면
? 즉 : func ([1,2,3], [3,4,5], L). L = [1,2,4,5] ΣΔ. –
아니요, func ([1,2,3,4], [2,3], L). L : [1, 4] – FriedRike