Я пытаюсь создать included_list(X,Y)
термин, который проверяет, является ли X непустым подсписком Y.
Я уже использую это для проверки наличия элементов в списке Y
check_x(X,[X|Tail]).
check_x(X,[Head|Tail]):- check_x(X,Tail).
И добавляемый термин
append([], L, L).
append([X | L1], L2, [X | L3]) :- append(L1, L2, L3).
создать список, чтобы программа завершилась на
included_list([HeadX|TailX],[HeadX|TailX]).
но у меня возникают проблемы с обработкой нового пустого списка, который я пытаюсь создать с помощью «добавления» (я хочу создать пустой список для добавления элементов, существование которых подтверждено в обоих списках).
Я нашел это
sublist1( [], _ ).
sublist1( [X|XS], [X|XSS] ) :- sublist1( XS, XSS ).
sublist1( [X|XS], [_|XSS] ) :- sublist1( [X|XS], XSS ).
но оказывается истинным в подсписке ([], [1,2,3,4)