如何在prolog中旋转列表?

Mah*_*hdi 2 prolog

我是prolog编程的新手,我可以问一些简单的问题.

我想将列表旋转到prolog中,如下所示:

rotatelist([1,2,3,4],R)   
R=[2,3,4,1]
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码:

rotatelist([],[]).   
rotatelist([H1|T1],[H2|T2]) :- rotatelist(H1,T2).
Run Code Online (Sandbox Code Playgroud)

mag*_*gus 7

为什么要使用递归..这不仅仅是将头移到尾部的情况吗?

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