Мне трудно понять, что нужно изменить в моей программе, поэтому я могу ввести преемников.
Пример ввода:
rotLeft( [a, b, c, d, e, f, g], s(s(0)), [c, d, e, f, g, a, b] )
rotLeft( [1, a, 2, b], 0, [1, a, 2, b] )
rotLeft( [1, 2], s(s(s(s(s(0))))), [2, 1] )
все должно быть правдой.
На данный момент моя программа работает, но только с обычными целочисленными значениями.
rotLeft(L,0,L).
rotLeft([],_,[]).
rotLeft([H|T], 1, X) :-
append(T, [H], X), !.
rotLeft([H|T],N,X) :-
append(T, [H], Y),
N1 is N - 1,
rotLeft(Y, N1, X).