Задана целочисленная матрица строками, переставить первую и последнюю строки
/* Объявление типа списка */
domains
s=integer*
list=s*
/* Описание предикатов */
predicates
change(list,list)
add(list,s,list,s)
clauses
/* Отрезание первого элемента H от входящего списка,
добавление к возращенному списку М возвращенного последнего элемента К */
change([H|L],[K|M]):-add(L,H,M,K).
/* Отрезание от входящего списка последнего элемента К
и вставление полученного первого элемента Х */
add([K|[]],X,[X],K).
add([H|L],X,[H|M],K):-add(L,X,M,K).
goal change([[1,2],[3,4],[5,6]],O).
|