                               /             \
                             _/               |  _)
            ___ \   ___ \  ___ \  ___ \  ___  |  _   ___ \  ___ \
                 |  \    | \    | \    | \    |   \  \  _/  \    |
             __  |   ___/   ___/   |   |  |   |    |  |      ___/
            /    |  |      |       |   |  |   |    | /      |
            \    |  |       \   \  |   |  |   |    | \   \   \   \
            ____/ _/       _____/_/  _/  ____/   _/  ____/  _____/

             * listado de funciones predefinidas de SWI PROLOG *

-----------------------------------------------------------------------------

select(L1,X,L2)         : Toma X de L1, lo borra y devuelve L2.
append(L1,L2,L3)        : Concatena L1 con L2 y devuelve L3.
length(L1,N)            : Toma L1 y devuelve su longitud en N.
reverse(L1,L2)          : Invierte L1 y la devuelve en L2.
sort(L1,L2)             : Ordena L1 y la devuelve en L2.

between(N1,N2,N)        : Devuelve N entre N1 y N2.

:-op(Prec,Asoc,Func)    : Define la funcin Func con precedencia Prec y
                          asociatividad Asoc.
Term =.. List           : Convierte la lista List en un trmino.
functor(Term,SF,A)      : Se verifica si Term tiene aridad A y smbolo SF.
arg(N,Term,Arg)         : Se verifica si Term tiene Arg como N-simo argumento
apply(Term,List)        : Aplica los argumentos en List a Term.
maplist(Pred,L1,L2)     : Aplica Pred a los suc. pares de eltos. de L1 y L2.

findall(Var,Goal,L)     : Evalua Goal y devuelve en L todas las instancias
                          de Var que lo verifican. Si Goal falla para todos
                          los valores dev. L = []. // Lista
bagof(Var,Goal,L)       : Evalua Goal haciendo backtracking sobre todas sus
                          vars.libres, devolviendo una estancia de L para cada
                          alternativa. Devuelve en L todas las instancias de
                          Var que verifican Goal. Utilizando V^Goal hacemos que
                          bagof no incluya V. Si Goal falla para todos los
                          valores bagof falla. // Multiconjunto.
setof(Var,Goal,L)       : Como bagof pero eliminando duplicados y ordenando.
                          // Conjunto.
:- dynamic Func         : indica que Func podr ser alterado en tiempo de
                        : ejecucin con append y retract.
append(R)               : Aade la regla R a la base de conocimiento.
retract(R)              : Quita la regla R de la base de conocimiento.
                          (La primera que unifique con R).
appenda(R)              : Aade al principio.
appendz(R)              : Aade al final (equivale a append).
retractall(R)           : Quita todas las reglas que unifiquen con R de la
                          base de conocimiento.
abolish(P/A)            : Quita todas las reglas que tengan como cabeza la
                          funcin P de aridad A.
abolish(P,A)            : Equivalente al anterior.

name(Term,Lista)        : Se verifica si Lista contiene los ASCII de Term.

number(X)               : Se verifica si X es un nmero.
integer(X)              : Se verifica si X es un entero.
float(X)                : Se verifica si X es un real.
round(X)                : Redondea X.
atom(X)                 : Se verifica si X es un tomo.
atomic(X)               : Se verifica si X es un entero, un real, una
                          cadena o un tomo.
var(X)                  : Se verifica si X es una variable (sin instanciar).
nonvar(X)               : Se verifica si X no es una variable.
ground(Term)            : Se verifica si Term es un termino cerrado(sin vbles)

time(Expr)              : Evalua Expr y devuelve datos sobre su eficiencia.

-----------------------------------------------------------------------------
                         * Definidas por el usuario *
-----------------------------------------------------------------------------

permutacion([_],[_]).
permutacion([X|L1],L2):-
   permutacion(L1,L3),
   select(L2,X,L3).

-----------------------------------------------------------------------------
=============================================================================
-----------------------------------------------------------------------------

                                 =/= The End =/=

                          (C) 2001 WOPR2K A7 C1B3R5PAC3.
