小编use*_*060的帖子

Prolog移位或旋转元素

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

shift([a,b,c,d,e,f,g,h],3,Shifted).
Run Code Online (Sandbox Code Playgroud)

应该产生

Shifted = [d,e,f,g,h,a,b,c]
Run Code Online (Sandbox Code Playgroud)

你可以帮帮我吗?

这就是我所拥有的

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

shift(0, L, L) :- !.
shift(N, L1, L2) :-
   N1 is N-1,
   shift(L1, L),
   shift(N1, L, L2).
Run Code Online (Sandbox Code Playgroud)

prolog

1
推荐指数
1
解决办法
943
查看次数

标签 统计

prolog ×1