/*
   come(P,X)

  Predicado que comprueba si a P come la comida X

  Argumentos
  + P:
    - Significado: nombre de persona
    - Tipo: entrada y salida
  + X:
    - Significado: nombre de comida
    - Tipo: entrada y salida
 
  Predicados relacionados
  vegetariano, verdura, fail, !
*/


come(Persona,X):- 
        vegetariano(Persona),
	not(verdura(X)),
	!,
	fail.

come(_,X):- comida(X).


/*
   comida(X)

  Predicado que comprueba si X es un nombre de comida

  Argumentos
  + X:
    - Significado: nombre 
    - Tipo: entrada y salida
 
  Predicados relacionados
  carne, verdura, pescado
*/
comida(X):- carne(X); verdura(X); pescado(X).


/*
  comida(X)

  Predicado que comprueba si X es un nombre de comida

  Argumentos
  + X:
    - Significado: nombre 
    - Tipo: entrada y salida
 
  Predicados relacionados
  verdura, pescado
*/
carne(cerdo).
carne(ternera).

/*
  verdura(X)

  Predicado que comprueba si X es un nombre de verdura

  Argumentos
  + X:
    - Significado: nombre 
    - Tipo: entrada y salida
 
  Predicados relacionados
  carne, pescado
*/

verdura(espinacas).
verdura(acelgas).


/*
  pescado(X)

  Predicado que comprueba si X es un nombre de pescado

  Argumentos
  + X:
    - Significado: nombre 
    - Tipo: entrada y salida
 
  Predicados relacionados
  carne, verdura
*/
pescado(bacalao).
pescado(merluza).

/*
   vegetariano(X)

  Predicado que comprueba si P es vegetariano

  Argumentos
  + P:
    - Significado: nombre de una persona
    - Tipo: entrada y salida
 
  Predicados relacionados
  carne, verdura, pescado
*/

vegetariano(anselmo).
vegetariano(alicia).
