В общем, ваш предикат append принимает 3 аргумента (L1
, L2
, L3
):
append(L1, L2, L3)
Append говорит вам, если L3
список в результате добавления L1
к передней части L2
.
Для первого случая:
append([],L,L)
Вы дать базовый вариант для добавления (то есть то, что является результатом пустого списка, приложенного к некоторому списку, L
В результате только первоначальный список, L
.) ,
Вашего второй случай говорит, как вы можете доказать некоторый список [H|T]
прилагаемого к передней части другого списка L
, чтобы создать какой-либо другой список [H|R]
где H
является главой первого списка ввода и вывода списка.
append([H|T],L,[H|R]):- append(T,L,R).
Вторая часть этого правила говорит, что это только справедливо, если можно доказать, что список R
является результатом добавления T
(хвост исходного списка ввода) в L
.