/*
   le_gusta(P, X)

  Predicado que comprueba si a P le gusta X

  Argumentos
  + P:
    - Significado: nombre de persona
    - Tipo: entrada y salida
  + X:
    - Significado: nombre de animal
    - Tipo: entrada y salida
 
  Predicados relacionados
  serpiente, animal, fail, !
*/


le_gusta(maria, X):- serpiente(X), !, fail.
le_gusta(maria, X):- animal(X).



/*
   ave(A).

  Predicado que comprueba si A es un ave

  Argumentos
  + A:
    - Significado: nombre 
    - Tipo: entrada y salida
*/


ave(loro).
ave(buitre).


/*
  serpiente(A).

  Predicado que comprueba si A es una serpiente

  Argumentos
  + A:
    - Significado: nombre 
    - Tipo: entrada y salida
*/

serpiente(boa).
serpiente(anaconda).

/*
  animal(A).

  Predicado que comprueba si A es un animal

  Argumentos
  + A:
    - Significado: nombre 
    - Tipo: entrada y salida

  Predicados relacionados
  serpiente, animal

*/
animal(X):- serpiente(X); ave(X).
