Het verwijderen van duplicaten in Prolog

Prolog is een verklarende programmeertaal gebruikte in kunstmatige intelligentie en taalkunde onderzoek. In tegenstelling tot de meer gebruikelijke proceduretalen, worden meeste Prolog-programma's gedefinieerd als een reeks regels en vergelijkingen, in plaats van een reeks stappen. De volgende code beschrijft het proces om duplicaten te verwijderen uit een lijst in Prolog.

Instructies

1

Open een teksteditor, zoals Kladblok, en sla het bestand met de naam "remove_dups.pl."

2

Typ de code tussen de slashes (verlaten van de slashes zelf uit):

/

% remove_dups (+ - NewList lijst):

% Nieuwe lijst isbound aan de lijst, maar met dubbele items verwijderd.

remove_dups ([], []).

remove_dups ([eerste | Overige] NewRest):-

lid (eerst rusten),

remove_dups (Rest, NewRest).

remove_dups ([eerste | Rest], [eerste | NewRest]):-

niet (member(First, Rest)),

remove_dups (Rest, NewRest).

/

De "remove_dups"-functie is gedefinieerd als een reeks van drie regels. De eerste regel ("remove_dups([],[].)") geeft aan dat als de lijst leeg is, niets moet worden gedaan; de functie moet eenvoudig retourneren. De tweede regel geeft aan dat als het eerste item in de lijst nergens anders in de lijst verschijnt, dan het moet worden verwijderd (omdat het een duplicaat) en verwerking moet blijven gebruiken van de rest van de lijst door het aanroepen van de functie van de remove_dups weer met het eerste item in de lijst uitschakelen. De laatste regel geeft aan dat als het eerste lid van de lijst niet elders in de lijst voorkomt, het moet worden gehouden en verwerking moet blijven.

3

Sla uw werk door te raken "Ctrl" en "S" samen.