отношение в Прологе для сдвига элементов влево - PullRequest
4 голосов
/ 19 декабря 2009

Мне нужно отношение в прологе, чтобы сдвинуть список влево на один элемент так, чтобы

?shift([1,2,3],L)

должен произвести

L=[2,3,1].

Не могли бы вы мне помочь?

1 Ответ

6 голосов
/ 19 декабря 2009

Вы можете использовать команду append для объединения элементов списка:

shift([H|T], Y) :-
  append(T, [H], Y).

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

Также, вот хороший базовый обзор использования списков в Прологе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...