Перестановка элементов списка - Prolog
Формулировка задачи:
Подскажите, пожалуйста, (или дайте ссылки на) решения следующих задач со списками:
1) Поменять местами 2 выбранных элемента списка, что-то вроде pred(List, Ind1, Ind2, ResultList)
2) Переместить из списка 1 в список 2 числа, попадающие в заданный интервал, пример pred(List, Begin, End, ResultList).
Решение задачи: «Перестановка элементов списка»
textual
Листинг программы
- domains
- int=integer
- intl=int*
- predicates
- getEl(intl,int,int)
- putEl(intl,int,int,intl)
- swap(intl,int,int,intl)
- clauses
- getEl([H|_],0,H).
- getEl([_|T],N,Z) :- N1=N-1, getEl(T,N1,Z).
- putEl([_|T],0,V,[V|T]).
- putEl([H|T],N,V,[H|Q]) :-N1=N-1, putEl(T,N1,V,Q).
- swap(A,N1,N2,R) :- getEl(A,N1,V1), getEl(A,N2,V2), putEl(A,N1,V2,B1), putEl(B1,N2,V1,R).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д