Prolog - Intercalar Elementos

 
Vista:

Intercalar Elementos

Publicado por JULIAN ANDRES (2 intervenciones) el 30/03/2014 17:28:08
hola necesito teniendo una lista X intercalar de a dos elementos:

ej: x=[2,6,1,9,10] que me retorne
r=[6,2,9,1,10]

estoy haciendo el siguiente codigo pero no lo logro.

invXY([], L,L).
invXY([X|[Y|R], Lst, L]:-
invXY(R, [Lst|Y[X|_]], L).

el problema con este codigo es que me da resultados errados y no funciona para un elemento o ara varios solo con dos

por ejemplo en la lista:
[2,6] me retorna [[][6|2]], me retorna la lista vacia de primero y le nodo o la estrucutra no me la devuelve como lista normal

alguna idea de como hacer
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

Intercalar Elementos

Publicado por javier (1 intervención) el 27/06/2014 17:27:54
%intercarlar de a pares elementos en lista

cola([P],[]).
cola([P|C],C).

/*primer([],_).*/
primer([P],P).
primer([P|C],P).


/*interc([],[]).*/
interc([],[]).
interc([P],[P]).

interc([P|C],R):-
primer(C,H),
cola(C,C2),
interc(C2,R2),
append([H],[P],R1),
append(R1,R2,R).
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