una Lista en prolog es de la forma [ cabeza , cola ], donde la cola es otra lista,
esta estructura no es indexable asi como quieres, pero simplemente
puedes hacer un predicado que te devuelva el elemento en la posicin o de una lista
asi por ejemplo:
elementAt( [X|_] , 0 , X ).
elementAt( [_|L] , P , X ):- P \= 0 , P2 is P-1, elementAt( L , P2 , X ).
ahora puedes hacer un recorrido asi por ejemplo:
for( L , I ):- elementAt( L , I , X ) , writeln( X ).
for( L , I ):- longitudLista( L , N ), I2 is ( (I + 1) mod N ) , for( L , I2 ).
claro con alguna condicion de parada