我需要prolog中的关系来将列表左移一个元素,这样就可以了
?shift([1,2,3],L)
Run Code Online (Sandbox Code Playgroud)
应该产生
L=[2,3,1].
Run Code Online (Sandbox Code Playgroud)
你可以帮帮我吗?
您可以使用append命令将列表的元素组合在一起:
shift([H|T], Y) :-
append(T, [H], Y).
Run Code Online (Sandbox Code Playgroud)
因此,您只需将尾部和头部(按此顺序)附加在一起,然后设置Y为新创建的列表.请注意,既然H是元素而不是列表,则必须用它包围它[并]使其成为append函数中的列表.
此外,这里是在Prolog中使用列表的一个很好的基本概述.