Prolog to deklaratywny język programowania powszechnie używany w badaniach nad sztuczną inteligencją i językoznawstwem. W przeciwieństwie do bardziej powszechnych języków proceduralnych, większość programów Prologu jest zdefiniowana jako seria reguł i równań, a nie seria kroków. Poniższy kod opisuje proces usuwania duplikatów z listy w Prologu.
Krok 2
Wpisz kod między ukośnikami (pozostawiając same ukośniki):
/ % remove_dups(+List, -NewList): % Nowa lista jest powiązana z Listą, ale z usuniętymi duplikatami. usuń_duplikaty([], []).
remove_dups([Pierwszy | Reszta], NowaReszta) :- member (Pierwszy, Reszta), remove_dups (Reszta, NowaReszta).
remove_dups([Pierwszy | Reszta], [Pierwszy | NowaReszta]) :- not (członek (Pierwszy, Reszta)), remove_dups (Reszta, NowaReszta). /
Funkcja „remove_dups” jest zdefiniowana jako seria trzech reguł. Pierwsza reguła ("remove_dups([],[].)") określa, że jeśli lista jest pusta, nic nie powinno być zrobione; funkcja powinna po prostu zwrócić. Druga reguła określa, że jeśli pierwsza pozycja na liście pojawia się gdziekolwiek indziej na liście, to powinna zostać usunięta (ponieważ jest duplikat) i przetwarzanie powinno być kontynuowane przy użyciu reszty listy przez ponowne wywołanie funkcji remove_dups z pierwszą pozycją na liście odpuścić. Ostateczna zasada określa, że jeśli pierwszego członka listy nie ma w innym miejscu na liście, należy go zachować, a przetwarzanie powinno być kontynuowane.
Techwalla może uzyskać odszkodowanie za pośrednictwem linków partnerskich w tej historii.