Dividir una lista en pares e impares y luego unirla
Publicado por k1m (1 intervención) el 19/01/2013 01:19:08
Hola amigos, talvez sea facil pero no se como hacerlo, acudo a los expertos en prolog porque necesito de urgencia en prolog un programa que me permita ingresar una lista de números y que lo separe en 2 listas una de pares y otra de impares y luego las una en una sola lista.
por ejemplo con este codigo:
dividir([ ],[ ],[ ]).
dividir([L|R],[L|P],I):-E is L mod 2,E=0,dividir(R,P,I),!.
dividir([L|R],P,[L|I]):-C is L mod 2,C>0,dividir(R,P,I),!.
he conseguido esto:
?- dividir([2,3,4,5,6,7,8,9],Pares,Impares).
Pares = [2, 4, 6, 8],
Impares = [3, 5, 7, 9].
hasta alli e llegado, pero me falta al final unir las 2 listas pares e impares generar otra lista como esta
Unidos = [2, 4, 6, 8, 3, 5, 7, 9].
Finalmente deveria ser algo como esto:
?- dividir([2,3,4,5,6,7,8,9],Pares,Impares,Unidos).
Pares = [2, 4, 6, 8],
Impares = [3, 5, 7, 9].
Unidos = [2, 4, 6, 8, 3, 5, 7, 9].
Espero su ayuda y/o sugerencias.
Gracias
por ejemplo con este codigo:
dividir([ ],[ ],[ ]).
dividir([L|R],[L|P],I):-E is L mod 2,E=0,dividir(R,P,I),!.
dividir([L|R],P,[L|I]):-C is L mod 2,C>0,dividir(R,P,I),!.
he conseguido esto:
?- dividir([2,3,4,5,6,7,8,9],Pares,Impares).
Pares = [2, 4, 6, 8],
Impares = [3, 5, 7, 9].
hasta alli e llegado, pero me falta al final unir las 2 listas pares e impares generar otra lista como esta
Unidos = [2, 4, 6, 8, 3, 5, 7, 9].
Finalmente deveria ser algo como esto:
?- dividir([2,3,4,5,6,7,8,9],Pares,Impares,Unidos).
Pares = [2, 4, 6, 8],
Impares = [3, 5, 7, 9].
Unidos = [2, 4, 6, 8, 3, 5, 7, 9].
Espero su ayuda y/o sugerencias.
Gracias
Valora esta pregunta


0