我需要prolog中的关系,将列表左移一个元素,以便
?shift([1,2,3],L)
应该产生
L=[2,3,1].
你可以帮助我吗?
答案 0 :(得分:6)
您可以使用append命令将列表的元素组合在一起:
shift([H|T], Y) :-
append(T, [H], Y).
因此,您只需将尾部和头部按顺序附加(按此顺序),并将Y
设置为新创建的列表。请注意,由于H
是一个元素而非列表,因此您必须使用[
和]
将其括起来,使其成为append
函数中的列表。
此外,here's a good basic overview在Prolog中使用列表。