ayuda en prolog

martin
31 de Mayo del 2006
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).