我试图让程序在序言会做这样的事情:序言列出区别
diffSet([a,b,c,d], [a,b,e,f], X).
X = [c,d,e,f]
我写了这个:
diffSet([], _, []).
diffSet([H|T1],Set,Z):- member(Set, H), !, diffSet(T1,Set,Z).
diffSet([H|T], Set, [H|Set2]):- diffSet(T,Set,Set2).
但这种方式,我只能从要素第一个列表。我如何从第二个元素中提取元素?
@edit: 件检查,如果H是集
member([H|_], H).
member([_|T], H):- member(T, H).
你为什么要从第二个列表中删除重复项,但不是从第一个列表中删除重复项? – false 2012-03-13 21:17:33
@false:删除(T1,H,T2)应该工作,我认为 – CapelliC 2012-03-13 21:28:03