2013-05-09 3 views
0

Есть ли встроенный предикат или простой способ переместить последний элемент в списке вперед? Единственный способ, которым я придумал, - это предикат, который хранит последний элемент, удаляет его из исходного списка, а затем делает append(Last Elem, Original List, New List), что немного громоздко.Пролог: переместить последний элемент в список вперед

ответ

3

Я не знаю, есть ли встроенный предикат, но это может быть достигнуть с очень простым кодом:

moveLast([], []). 
moveLast(L, [H|T]) :- append(T, [H], L). 
+0

Я не думаю, что это будет «переместить последний элемент в списке перед". 'moveLast ([1, 2, 3, 4], X). X = [2, 3, 4, 1] .' –

+1

@SergeyDymchenko: Отредактировано. Моя голова была в облаке ... – nhahtdh

Смежные вопросы