Prolog - Ejercicio para un final

 
Vista:

Ejercicio para un final

Publicado por Sol (1 intervención) el 02/08/2009 01:03:29
Hola necesitaria si alguien me puede ayudar a resolver este ejercicio, necesito hacer generar(L,I,P) las listas I y P donde P es la lista resultante de los elementos de L que esta en posiciones pares e I, es una lista compuesta por los elementos de las posiciones impares. agradeceria al que me lo pueda resolver... yo lo hice asi.. pero no me funciona...

no se cual sera el error.

cantidad([],0).
cantidad([x],1).
cantidad([x|xs],N):- M is N+1, cantidad(xs,M).

concatenar([], R, R).
concatenar([L|RL], R, [L|S]):- concatenar(RL, R, S).

generar([],I,P).
generar([L|L1],I,P):- cantidad(L1,N) , not(0=(N mod 2)) , concatenar(L,I,R) , generar(L1,R,P).
generar([L|L1],I,P):- cantidad(L1,N) , 0=(N mod 2) , concatenar(L,P,Q) , generar(L1,I,Q).

gracias
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:Ejercicio para un final

Publicado por fijate (6 intervenciones) el 19/11/2009 19:00:29
generar(L,I,P):-generarAcu(L,I,P,1).

generarAcu([],[],[],_).
generarAcu([P|Ls],I,[P|Ps],N):-par(I),A is N+1,generarAcu(Ls,I,Ps,A).
generarAcu([I|Ls],[I|Is],P,N):-not (par(I)),A is N+1,generarAcu(Ls,Is,P,A).
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