Sådan fjerner du dubletter i Prolog

Prolog er et deklarativt programmeringssprog, der almindeligvis bruges i kunstig intelligens og lingvistik. I modsætning til de mere almindelige proceduresprog er de fleste Prolog-programmer defineret som en række regler og ligninger, snarere end som en række trin. Følgende kode beskriver processen til at fjerne dubletter fra en liste i Prolog.

Trin 2

Indtast koden mellem skråstregene (lad selve skråstregene ude):

/ % remove_dups(+List, -NewList): % Ny liste er bundet til List, men med duplikerede elementer fjernet. remove_dups([], []).

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

remove_dups([First | Rest], [First | NewRest]) :- ikke (medlem (First, Rest)), remove_dups (Rest, NewRest). /

Funktionen "remove_dups" er defineret som en række af tre regler. Den første regel ("remove_dups([],[].)") specificerer, at hvis listen er tom, skal der ikke gøres noget; funktionen skal blot vende tilbage. Den anden regel specificerer, at hvis det første element på listen vises et andet sted på listen, så skal det fjernes (da det er en duplicate), og behandlingen skal fortsætte med at bruge resten af ​​listen ved at kalde funktionen remove_dups igen med det første element på listen slap. Den sidste regel specificerer, at hvis det første medlem af listen ikke er til stede et andet sted på listen, skal den beholdes, og behandlingen skal fortsætte.

Techwalla kan optjene kompensation gennem affilierede links i denne historie.