ayuda en prolog
Por favor!!, necesito ayuda sobre un programa en prolog. Tengo que hacer girar la lista hacia la derecha y no me sale (rotate), el giro hacia la izquierda muy bien.
Fuente
rotate(L1, R, L2, i ) :- rotate_i( L1, R, L2 ).
rotate(L1, R, L2, d ) :- rotate_d( L1, R, L2 ).
rotate_d([B|C],A,D) :-
dividir(A, [B|C], E, F),
concatenadas(F, E, D).
rotate_i([B|C],A,D) :-
dividir(A, [B|C], E, F),
concatenadas(E, F, D).
dividir(A, [B|C], D, E) :-
divide_lista(A, [B|C], D, E, 0).
divide_lista(A, [B|C], [B|C], [], D) :-
D>=A.
divide_lista(A, [B|C], D, [B|E], F) :-
G is F+1,
divide_lista(A, C, D, E, G).
concatenadas([], A, A).
concatenadas([A|B], C, [A|D]) :-
concatenadas(B, C, D).
Fuente
rotate(L1, R, L2, i ) :- rotate_i( L1, R, L2 ).
rotate(L1, R, L2, d ) :- rotate_d( L1, R, L2 ).
rotate_d([B|C],A,D) :-
dividir(A, [B|C], E, F),
concatenadas(F, E, D).
rotate_i([B|C],A,D) :-
dividir(A, [B|C], E, F),
concatenadas(E, F, D).
dividir(A, [B|C], D, E) :-
divide_lista(A, [B|C], D, E, 0).
divide_lista(A, [B|C], [B|C], [], D) :-
D>=A.
divide_lista(A, [B|C], D, [B|E], F) :-
G is F+1,
divide_lista(A, C, D, E, G).
concatenadas([], A, A).
concatenadas([A|B], C, [A|D]) :-
concatenadas(B, C, D).