Удалить из списка повторяющиеся элементы - Prolog
Формулировка задачи:
Удалить из списка повторяющиеся элементы.
Заранее благодарю!
Листинг программы
- domains
- list = real*
- predicates
- nondeterm read_list(integer, list)
- nondeterm result
- clauses
- read_list(0,[]).
- read_list(N,[H|T]):-readreal(H),N1=N-1, read_list(N1,T).
- result:-write("Enter the number of elements"),nl,
- write("N = "),readint(N),
- write("Enter the elements: "),nl,
- read_list(N,L),
- write("List = "),
- write(L),nl.
- goal
- result.
Решение задачи: «Удалить из списка повторяющиеся элементы»
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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д