Ответ в теме: Функция разделения списка на части

      Комментарии к записи Ответ в теме: Функция разделения списка на части отключены
#1910

Для решение достаточно использовать стандартную функцию append:

divide_list(Part, [Part]):-!.
divide_list(List, [First_Part|Tail]):-
  append(First_Part, ListPart, List),
  divide_list(ListPart, Tail).

Если список частей содержит единственную часть, представляющую собой искомый список, то правило завершается (решение найдено).
В противном случае от списка частей берется первая. Эта часть отделяется от списка вызовом append — формируется подсписок, который обрабатывается рекурсивно с остальными частями.

Вложения: