특정 목록 구성원 절차를 적용하고, 그 목록에있는 모든 고유 요소를 제거합니다 예를 들어프롤로그 - 나는 목록을받는 함수를 가지고
repeating(Q, L):-
repeating(Q, Q, L).
repeating([], _, []).
repeating([H | T], Q, [H | L]):-
count(H, Q, N),
N > 1, !,
repeating(T, Q, L).
repeating([H | T], Q, L):-
count(H, Q, N),
N = 1,
repeating(T, Q, L).
repeating([1, 2, 3, 4, 5, 2, 7, 7, 3, 8], X).
주는 쿼리를
X = [2, 3, 2, 7, 7, 3].
이 요소를 네 개의 요소 긴 목록으로 구성된 목록에 적용하고 세 번째 요소 만 검사하여 예를
repeating([[1, 2, 3, 4], [5, 6, 7, 8], [3, 5, 7, 9], [4, 3, 2, 1]], X).
고유하지 않은 세 번째 요소를했다
X = [[5, 6, 7, 8], [3, 5, 7, 9].
만 목록을 반환합니다. 내 코드는 이제 첫 번째 코드와 같은 간단한 목록에만 적용되며, 아침마다 여러 요소가 포함 된 긴 목록의 4 개 목록에 대해 이러한 경우에 적용되도록 수정하는 방법을 고안했습니다. 그렇게 할 수있는 방법을 찾지 못했고 이것에 대한 약간의 지침을 매우 고맙게 생각합니다.
감사합니다.
이 변경은'count'에 영향을 미치지 만'repeating'에 전혀 영향을 미치지 않을 수 있습니다. 'count'에서 여러분이 세고있는 원소를'[_, _, X, _]'로 처리하고 일치하는 세번째 원소를 센다. 제 생각에 원자 목록에 제약이 없기 때문에 '반복'이라고 생각합니다. – lurker