Удалить из списка повторяющиеся элементы - Prolog
Формулировка задачи:
Удалить из списка повторяющиеся элементы.
Заранее благодарю!
Решение задачи: «Удалить из списка повторяющиеся элементы»
textual
Листинг программы
domains
int=integer
intl=int*
predicates
del_elt(int,intl,intl)
uniq(intl,intl)
read_list(intl)
task
clauses
del_elt(_,[],[]).
del_elt(X,[X|T],R) :- del_elt(X,T,R).
del_elt(X,[Y|T],[Y|R]) :- X<>Y,del_elt(X,T,R).
uniq([],[]).
uniq([X|T],[X|R]) :- del_elt(X,T,Y), uniq(Y,R).
read_list([H|T]) :- readint(H),!,read_list(T).
read_list([]).
task :- write("Enter any list:"),nl,read_list(H),uniq(H,U),write("List of uniq values: "),nl,write(U),nl.
goal
task.