|
|
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] |
|
|