Лифп / Списки 1
.docxМинистерство образования и науки Кыргызской Республики
Кыргызский Государственный Технический Университет им. И. Раззакова
Факультет Информационных Технологий
Кафедра:”Информатика и вычислительная техника”
Отчет
По лабораторной работе №4
По дисциплине: ЛиФП
Бишкек 2020
Вариант 11
11. Найти номер заданного элемента, и если он стоит на середине, удалить
элементы первой половины списка.
Код:
domains
int=integer.
intl=int*.
predicates
nondeterm indexOf(int,intl,int).
nondeterm cutHead(int,intl,intl).
nondeterm task(intl,integer,intl).
nondeterm length(intl,integer).
clauses
cutHead(0,X,X).
cutHead(N,[_|T],R):-N1 = N-1, cutHead(N1,T,R).
indexOf(X,[X|_],0).
indexOf(X,[_|T],N):- indexOf(X,T,N1),N = N1+1.
length([],0).
length([_|T],N):-length(T,N1),N=N1+1.
task(List,X,R):- indexOf(X,List,P), length(List,L), Q = (L div 2), Q=P, cutHead(P,List,R).
task(List,_,List).
goal
task([1,2,3,4,5,6,7,8,9,10],6,R).
Результат: