Prolog中的一种关系,可以转动元素

nan*_*an1 4 prolog

我需要prolog中的关系来将列表左移一个元素,这样就可以了

?shift([1,2,3],L)
Run Code Online (Sandbox Code Playgroud)

应该产生

L=[2,3,1].
Run Code Online (Sandbox Code Playgroud)

你可以帮帮我吗?

Kal*_*see 6

您可以使用append命令将列表的元素组合在一起:

shift([H|T], Y) :-
  append(T, [H], Y).
Run Code Online (Sandbox Code Playgroud)

因此,您只需将尾部和头部(按此顺序)附加在一起,然后设置Y为新创建的列表.请注意,既然H是元素而不是列表,则必须用它包围它[]使其成为append函数中的列表.

此外,这里是在Prolog中使用列表的一个很好的基本概述.