Prolog에서 중복을 제거하는 방법

Prolog는 인공 지능 및 언어 연구에 일반적으로 사용되는 선언적 프로그래밍 언어입니다. 보다 일반적인 절차 언어와 달리 대부분의 Prolog 프로그램은 일련의 단계가 아니라 일련의 규칙과 방정식으로 정의됩니다. 다음 코드는 Prolog의 목록에서 중복을 제거하는 프로세스를 설명합니다.

2 단계

슬래시 사이에 코드를 입력합니다(슬래시 자체는 제외).

/ % remove_dups(+List, -NewList): % 새 목록이 목록에 바인딩되지만 중복 항목이 제거됩니다. remove_dups([], []).

remove_dups([First | Rest], NewRest) :-멤버(First, Rest), remove_dups(Rest, NewRest).

remove_dups([First | Rest], [First | NewRest]) :- not (멤버(First, Rest)), remove_dups(Rest, NewRest). /

"remove_dups" 기능은 일련의 세 가지 규칙으로 정의됩니다. 첫 번째 규칙("remove_dups([],[].)")은 목록이 비어 있으면 아무 것도 수행하지 않도록 지정합니다. 함수는 단순히 반환되어야 합니다. 두 번째 규칙은 목록의 첫 번째 항목이 목록의 다른 곳에 나타나면 제거해야 함을 지정합니다. 복제) 및 처리는 목록의 첫 번째 항목과 함께 remove_dups 함수를 다시 호출하여 나머지 목록을 계속 사용해야 합니다. 그만뒀다. 최종 규칙은 목록의 첫 번째 구성원이 목록의 다른 곳에 없으면 유지되어야 하고 처리가 계속되어야 한다고 지정합니다.

Techwalla는 이 이야기의 제휴사 링크를 통해 보상을 받을 수 있습니다.