Kuidas eemaldada Prologis duplikaadid

Prolog on deklaratiivne programmeerimiskeel, mida tavaliselt kasutatakse tehisintellekti ja lingvistika uuringutes. Erinevalt enamlevinud protseduurikeeltest on enamik Prologi programme defineeritud reeglite ja võrrandite jadana, mitte sammudena. Järgmine kood kirjeldab duplikaatide eemaldamise protsessi Prologi loendist.

2. samm

Sisestage kood kaldkriipsude vahele (jättes kaldkriipsud välja):

/ % remove_dups(+List, -NewList): % Uus loend on seotud loendiga, kuid dubleerivad üksused on eemaldatud. eemalda_dups([], []).

remove_dups([First | Rest], New Rest) :- liige (First, Rest), remove_dups (Rest, New Rest).

remove_dups([First | Rest], [First | New Rest]) :- not (liige (First, Rest)), remove_dups (Rest, New Rest). /

Funktsioon "remove_dups" on määratletud kolme reegli jaana. Esimene reegel ("remove_dups([],[].)") täpsustab, et kui loend on tühi, ei tohiks midagi teha; funktsioon peaks lihtsalt tagasi tulema. Teine reegel määrab, et kui loendi esimene üksus kuvatakse loendis mujal, tuleb see eemaldada (kuna see on duplikaat) ja töötlemine peaks jätkuma ülejäänud loendi abil, kutsudes uuesti loendi esimese elemendiga funktsiooni remove_dups jäi pooleli. Lõplik reegel täpsustab, et kui nimekirja esimest liiget mujal nimekirjas ei ole, tuleb see alles jätta ja töötlemist jätkata.

Techwalla võib teenida hüvitist selles loos olevate sidusettevõtete linkide kaudu.