Prolog - Lista de Listas

 
Vista:

Lista de Listas

Publicado por Juan (1 intervención) el 27/07/2009 17:20:08
Hola Gente del Foro, tengo un ejercicio bastante complicado para mi y no lo puedo terminar de resolver, aqui les presento el ejercicio y la parte que yo tengo resuelta:

domains

predicates

clauses
concatenar([],L,L).
concatenar([X|Xs],Y,[X|Zs]):-concatenar(Xs,Y,Zs).
invertir([],[]).
invertir([X|Y],A):-
atomic(X),invertir(Y,B),concatenar(B,[X],A).
invertir([X|Y],A):-
not(atomic(X)),invertir(X,X1),invertir(Y,B),concatenar(B,[X1],A).
goal
invertir([[a, 1], [a, 2], [b, 1], [b, 2]], [[2, b], [1, b], [2, a], [1, a]]).

Como veran, me faltan los domains y los predicates, espero que alguien me pueda ayudar por favor, este ejercicio, como se ve en el goal, tiene que devolver TRUE, ya que la segunda lista de listas es la inversa de la primera.
Espero respuestas, muchas gracias...

NOTA: la parte de atomic() tampoco me funciona.
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

RE:Lista de Listas

Publicado por a ver (6 intervenciones) el 19/11/2009 21:14:27
llegue casi a lo mismo...
atomo([]).
atomo([X|Xs]):-not (atomo(X)),atomo(Xs).

invertir([X],[X]).
invertir([X|Xs],I):-atomo(X),invertir(X,A),invertir(Xs,R),append([R],[A],I).
invertir([X|Xs],I):-atomo([X|Xs]),invertir(Xs,A),append(A,[X],I).
lo solucionaste??
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