Лифп / Списки
.docxМинистерство образования и науки Кыргызской Республики
Кыргызский Государственный Технический Университет им. Раззакова
Факультет Информационных Технологий
Кафедра «Информатика и Вычислительная техника»
Отчет
ЛИФП
Лабораторная работа № 4 (списки)
8 вариант
Удалить из символьного списка все символы, которые встречаются более
одного раза.
domains
list=char*
predicates
nondeterm spisok(integer,list)
nondeterm dublicat(list,list)
delete1(list,char,list)
clauses
spisok(H,[H|_]).
spisok(H,[_|T]):-spisok(H,T).
dublicat([H|T],T1):-spisok(H,T),delete1(T,H,T2),
dublicat(T2,T1).
dublicat([H|T],[H|T1]):-not(spisok(H,T)),dublicat(T,T1).
dublicat([],[]).
delete1([], _, []).
delete1([Elem|T], Elem, R) :-
!,
delete1(T, Elem, R).
delete1([H|T], Elem, [H|R]) :-
delete1(T, Elem, R).
goal
dublicat(['1','1','2','3','b','c','c'],A).