我是新來的Prolog和我被困在一個謂詞,我試圖做。其目的是通過給定P的四元組[X,Y,S,P]遞歸列表,當四元組具有相同的P時,它將其存儲在臨時列表中。當遇到新的P時,它會查看臨時列表是否大於長度2,如果是,則將臨時列表存儲在輸出列表中,如果小於2則刪除四元組,然後再次啓動遞歸新P.
繼承人我的代碼:序言:臨時列表存儲
deleteUP(_,[],[],[]).
deleteUP(P,[[X,Y,S,P]|Rest],Temp,Output):-
!,
appends([X,Y,S,P],Temp,Temp),
deleteUP(P,[Rest],Temp,Output).
deleteUP(NextP,[[X,Y,S,P]|Rest],Temp,Output):-
NextP =\= P,
listlen(Temp,Z),
Z > 1, !,
appends(Temp,Output,Output),
deleteUP(NextP,[_|Rest],Temp,Output).
listlen([], 0).
listlen([_|T],N) :-
listlen(T,N1),
N is N1 + 1.
appends([],L,L).
appends([H|T],L,[H|Result]):-
appends(T,L,Result).
感謝您的幫助!