Описание слайда:
Пример программы со списками
/*Исходный вид: когда 1-й список пуст, то результат конкатенации – это второй список*/
konkat([],S,S).
/*Рекурсивное правило*/
konkat([X|S1],S2,[X|S3]):-konkat(S1,S2,S3).
Эта программа обладает большой гибкостью и ее можно использовать в различных целях.
Запрос ?- konkat ([а, в] , [с, d] ,S).
позволяет получить список, являющийся результатом конкатенации: S=[а, в, с, d].
Разбиение заданного списка на две части всеми возможными способами:
?- konkat (S1 ,S2, [а, в, с]).
Получим:
S1=[], S2=[a,b,c];
S1=[a], S2=[b,c]; S1=[a, b], S2=[c]; S1=[a, b, c], S2=[];
найти все элементы, предшествующие заданному элементу списка, и следующие за ним:
?- konkat ( До , [c | После], [а, в, с, d, e]).
До=[a, b], После=[d, e]