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
información
Otras secciones de LWP con contenido de Prolog
- Código fuente de Prolog
- Cursos de Prolog
- Temas de Prolog
información
Códigos de Prolog
- Juego Tres en raya
- Ejercicios resueltos
- Juego Rummy

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