Како уклонити дупликате у Прологу

Пролог је декларативни програмски језик који се обично користи у истраживању вештачке интелигенције и лингвистике. За разлику од уобичајених процедуралних језика, већина Пролог програма је дефинисана као низ правила и једначина, а не као низ корака. Следећи код описује процес уклањања дупликата са листе у Прологу.

Корак 2

Унесите код између косих црта (остављајући саме косе црте ван):

/ % ремове_дупс(+Листа, -НевЛист): % Нова листа је везана за Листу, али са уклоњеним дуплираним ставкама. ремове_дупс([], []).

ремове_дупс([Прво | Остало], НовоОдмор) :- члан (Први, Остало), ремове_дупс (Одмор, Нови одмор).

ремове_дупс([Први | Одмор], [Први | НовиРест]) :- не (члан (Први, Остало)), ремове_дупс (Одмор, Нови одмор). /

Функција "ремове_дупс" је дефинисана као низ од три правила. Прво правило ("ремове_дупс([],[].)") наводи да ако је листа празна, ништа не треба да се ради; функција треба једноставно да се врати. Друго правило наводи да ако се прва ставка на листи појави било где на листи, онда је треба уклонити (пошто је дупликат) и обрада треба да се настави коришћењем остатка листе поновним позивањем функције ремове_дупс са првом ставком на листи прекинуо. Коначно правило прецизира да ако први члан листе није присутан на другом месту на листи, треба да се задржи и да се обрада настави.

Тецхвалла може зарадити надокнаду путем партнерских веза у овој причи.