0
我是序言新手。PROLOG代碼中的錯誤
我希望PROLOG中的代碼能夠產生下面給出的預期輸出。有人可以告訴我我哪裏出錯了。
該代碼基本上是刪除重複項並生成所需格式的o/p。
remove_dups([],_L2,_L2).
remove_dups([A|B],L2,L3) :-
functor(A,Pr,Ar),(member(level(Pr,Ar,1) ,L2) -> remove_dups(B,L2,L2); append([level(Pr,Ar,1)],L2,L3),remove_dups(B,L3,L3)).
預期輸出:
?- remove_dups([a,b,a],[],L).
L = [level(a,0,1),level(b,0,1)].
非常感謝@Alexander的答案。我將在後來的程序中使用這個1進行等級映射和分層。沒有必要維持訂單..再次感謝 –
不客氣! –