Jak odstranit duplikáty v Prologu

click fraud protection

Prolog je deklarativní programovací jazyk běžně používaný ve výzkumu umělé inteligence a lingvistiky. Na rozdíl od běžnějších procedurálních jazyků je většina programů Prolog definována jako série pravidel a rovnic, spíše než jako série kroků. Následující kód popisuje proces odstranění duplikátů ze seznamu v Prologu.

Krok 2

Zadejte kód mezi lomítka (lomítka nechejte mimo):

/ % remove_dups(+List, -NewList): % Nový seznam je vázán na Seznam, ale s odstraněnými duplicitními položkami. remove_dups([], []).

remove_dups([První | Zbytek], NovýZbytek) :- člen (První, Zbytek), remove_dups (Zbytek, NovýZbytek).

remove_dups([První | Zbytek], [První | NovýZbytek]) :- ne (člen (První, Zbytek)), remove_dups (Zbytek, Nový Zbytek). /

Funkce "remove_dups" je definována jako série tří pravidel. První pravidlo ("remove_dups([],[].)") určuje, že pokud je seznam prázdný, nemělo by se nic dělat; funkce by se měla jednoduše vrátit. Druhé pravidlo určuje, že pokud se první položka v seznamu objeví kdekoli jinde v seznamu, měla by být odstraněna (protože se jedná o duplicate) a zpracování by mělo pokračovat pomocí zbytku seznamu opětovným voláním funkce remove_dups s první položkou v seznamu přerušeno. Poslední pravidlo určuje, že pokud se první člen seznamu nenachází jinde v seznamu, měl by být zachován a zpracování by mělo pokračovat.

Techwalla může získat kompenzaci prostřednictvím přidružených odkazů v tomto příběhu.