Вы можете использовать команду append для объединения элементов списка:
shift([H|T], Y) :-
append(T, [H], Y).
Таким образом, вы просто добавляете хвост и голову вместе (в таком порядке) и устанавливаете Y
в этот недавно созданный список. Обратите внимание, что, поскольку H
является элементом, а не списком, вы должны окружить его [
и ]
, чтобы сделать его списком в функции append
.
Также, вот хороший базовый обзор использования списков в Прологе.