/*
  pertenece(X,L).

  Predicado que comprueba si X pertenece a una lista L

  Argumentos
  + X:
    - Significado: elemento
    - Tipo: entrada y salida
  + L:
    - Significado: lista de elementos
    - Tipo: entrada y salida
*/

pertenece(X,[X|_]).

pertenece(X,[_|Cola]):- pertenece(X,Cola).
 

/*

  incluir(X,L,R).

  Predicado que comprueba si L contiene a X; en caso contrario, R es la lista en la que se ha incluido X al principio de L
  Si X no está en la lista L entonces se coloca en el primer lugar

  Argumentos
  + X:
    - Significado: elemento
    - Tipo: entrada y salida
  + L:
    - Significado: lista de elementos
    - Tipo: entrada y salida

  + R:
    - Significado: lista de elementos
    - Tipo: entrada y salida
*/


incluir(X,L,L):-pertenece(X,L),!.

incluir(X,L,[X|L]).
