append(L1, L2, Result).
 

append(L1, L2, Result). - Предикат объединения двух списков.

L1

Первый список

L2

Второй список

Result

Список результата

 

Определение предиката

append([ ], X, X).
append([X|Xs], Ys, [X|Zs]) if append(Xs, Ys, Zs)
.

 

Примеры

Цель

Результат

Комментарий

goal: append([a], [b], R).

R=[a, b]

Два списка объединены в один

goal: append([a], [b], [c]).

Нет

Объединение списков [a] и [b] не унифицируется со списком [c]

goal: append([a], [b], [a, b]).

Да

Объединение списков [a] и [b]  унифицируется со списком [a, b]

goal: append([a], X, [a, b]).

X=[b]

Определение второй составной части списка [a, b]

goal: append(X, Y, [a, b]).

X=[ ] Y=[a, b]
X=[a] Y= [b]
X=[a, b] Y=[ ]

Определение всех возможных вариантов составных частей списка [a, b]