Как да премахнете дубликатите в Prolog

click fraud protection

Prolog е декларативен език за програмиране, често използван в изследванията на изкуствен интелект и лингвистика. За разлика от по-често срещаните процедурни езици, повечето програми на Prolog се дефинират като поредица от правила и уравнения, а не като поредица от стъпки. Следният код описва процеса за премахване на дубликати от списък в Prolog.

Стъпка 2

Въведете кода между наклонените черти (оставяйки самите наклонени черти):

/ % remove_dups(+List, -NewList): % нов списък е свързан към списъка, но с премахнати дублиращи се елементи. remove_dups([], []).

remove_dups([First | Rest], NewRest) :- член (First, Rest), remove_dups (Rest, NewRest).

remove_dups([First | Rest], [First | NewRest]) :- не (член (First, Rest)), remove_dups (Rest, NewRest). /

Функцията "remove_dups" се дефинира като серия от три правила. Първото правило ("remove_dups([],[].)") указва, че ако списъкът е празен, нищо не трябва да се прави; функцията трябва просто да се върне. Второто правило уточнява, че ако първият елемент в списъка се появи някъде другаде в списъка, той трябва да бъде премахнат (тъй като е дубликат) и обработката трябва да продължи да използва останалата част от списъка, като извика отново функцията remove_dups с първия елемент от списъка тръгна, напусна. Последното правило посочва, че ако първият член на списъка не присъства другаде в списъка, той трябва да бъде запазен и обработката да продължи.

Techwalla може да спечели компенсация чрез партньорски връзки в тази история.