Cum să eliminați duplicatele din Prolog

Prolog este un limbaj de programare declarativ folosit în mod obișnuit în inteligența artificială și cercetarea lingvistică. Spre deosebire de limbajele procedurale mai comune, majoritatea programelor Prolog sunt definite ca o serie de reguli și ecuații, mai degrabă decât ca o serie de pași. Următorul cod descrie procesul de eliminare a duplicatelor dintr-o listă din Prolog.

Pasul 2

Introdu codul între bare oblice (lăsând barele oblice în sine):

/ % remove_dups(+List, -NewList): % Listă nouă este legată de Listă, dar cu elementele duplicat eliminate. remove_dups([], []).

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

remove_dups([First | Rest], [First | NewRest]) :- nu (membru (First, Rest)), remove_dups (Rest, NewRest). /

Funcția „remove_dups” este definită ca o serie de trei reguli. Prima regulă ("remove_dups([],[].)") specifică că dacă lista este goală, nu trebuie făcut nimic; funcția ar trebui pur și simplu să revină. A doua regulă specifică că, dacă primul element din listă apare oriunde altundeva în listă, atunci ar trebui eliminat (deoarece este un duplicat) și procesarea ar trebui să continue folosind restul listei apelând din nou funcția remove_dups cu primul element din listă rămas. Regula finală specifică că, dacă primul membru al listei nu este prezent în altă parte a listei, acesta trebuie păstrat și procesarea trebuie să continue.

Techwalla poate câștiga compensații prin link-urile afiliate din această poveste.