Working on a predicate, rotate(L,M,N)
, where L
is a new list formed by rotating M
to the right N
times.
My approach was to just append the tail of M
to its head N
times.
rotate(L, M, N) :-
( N > 0,
rotate2(L, M, N)
; L = M
).
rotate2(L, [H|T], Ct) :-
append(T, [H], L),
Ct2 is Ct - 1,
rotate2(L, T, Ct2).
Currently, my code returns L
equal to the original M
, no matter what N
is set to.
Seems like when I'm recursing, the tail isn't properly moved to the head.