Ответ в теме: Разделение списка на четные и нечетные индексы

      Комментарии к записи Ответ в теме: Разделение списка на четные и нечетные индексы отключены
#2075

Нужно рассмотреть три возможных случая:

  1. на вход подан пустой список (такая ситуация обязательно возникнет если исходный список был четной длины) – результатом является два пустых списка;
  2. на вход подан список из одного элемента. Значение помещается в список элементов с нечетными индексами, список четных возвращается пустым;
  3. в исходном списке более одного элемента. Первый элемент помещается в список нечетных, второй – четных, а остальные – обрабатываются рекурсивно

split([], [], []):-!.
split([Elem], [Elem], []):-!.
split([Odd, Even|Tail], [Odd|OddTail], [Even|EvenTail]):-
  split(Tail, OddTail, EvenTail).