Prolog - "punteros" en prolog

   
Vista:

"punteros" en prolog

Publicado por qwerqwer (1 intervención) el 27/05/2017 19:14:14
Imaginaos que P el la posicion a un elemento de una lista. Alguien sabe como puedo ir moviendo el puntero por fa? Porque sé que prolog no tiene punteros pero necesitaria ir recorriendo la lista en modulo longitud de la lista, pero no sé como
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

"punteros" en prolog

Publicado por Manuel Alejandro (5 intervenciones) el 28/05/2017 12:35:22
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar