/*
 * permuta.pl
 */

/*permuta([1,2,3]).*/

miembro(X, [X|_]).

miembro(X, [_|Ys]) :-
	miembro(X,Ys).

elige(X, [X|Xs], Xs).

elige(Z, [X|Xs], [X|Ys]) :-
	elige(Z, Xs, Ys).


concatena([], X, X).

concatena([X|Xs], L, [X|Ys]) :-
	concatena(Xs, L, Ys).


permuta([], []).

permuta(X, [Y|Ys]) :-
	elige(Y, X, Xs),
	permuta(Xs, Ys).

permuta(X, Z) :-
	elige(Y, X, Xs),
	permuta(Xs, Ys),
	concatena(Ys, [Y], Z).

	

/* EOF permuta.pl */
