我想从给定列表中删除所有重复项。
考虑以下代码:
% check if the given element is in the given list
member(Element,[Element|_]).
member(Element,[_|List]):-member(Element, List).
% append the element only if it's NOT already in the input list
appending([],X,X).
appending([H|T1],Elem,[H|T2]):- appending(T1,Elem,T2).
appendHlp(ListOrg,Res,Addme):- not(member(Addme,ListOrg)),
appending(ListOrg,[Addme],Res).
appendHlp(ListOrg,Res,Addme):- member(Addme,ListOrg),
Res=ListOrg.
% remove duplicates
setify([H|T],Set):-appendHlp(Set,Output,H),
setify(T,Output).
setify([],_).
当我运行代码时:
1 ?- setify([1,2,3,3,2],X).
输出是:
X = [1, 2, 3|_G2725]
我怎样才能去掉尾巴?
谢谢