Está en la página 1de 4

Rey Jimenez Garcia Lab Inteligencia Artificial 1 

200413358 
 
Tarea 2 
 
Prolog 

Screenshot 
Sintaxis 

 
 
Comando  Descripcion 

Comentarios /* ... */ 

Predicados  nombre(term1, ..., termN). 

  Aridad=nº Argumentos 

Constantes Ejemplos: a,
Simbólicas  x, ‘2’, juan, “camisa” (1ª letra en minúsculas). 

Constantes Numéricas  Ejemplos: 2, 355, -1


 

Terminos   

Variables  Ejemplos: X, Y, Nombre (1ª letra literal en mayúsculas).  

Variable Anónima “_”  Su valor es indiferente.  

Estructura (Función)  Functor(arg1, …, argN). 

Hecho Predicado( ... ).

Regla  Consecuente :-Antecedente 

Operadores Aritmeticos   

+/ 2  Suma  

*/ 2  Multiplicación 

-/ 1  Menos unario. 

-/2  Substracción. 

/ / 2  División 

Operadores Logico   

=:=  Igualdad Aritmética. 

=\=  Distinto 

>  Mayor que 


<  Menor que 

>=  Mayor o igual 

=<  Menor o igual 

Listas   

[elem1, ... elemN]  Secuencia de elementos separados por coma y entre corchetes. 

[]  Lista vacía 

[cab|cola]  Estructura con dos componentes: cabeza lista y el resto de la lista 

Operadores Especiales   

Corte “!”  Indica a Prolog que no considere las cláusulas previas en caso de
reevaluación. 

=  Unificación de términos. 

\=  A \= B, Verdadero si ambos términos no pueden unificarse. 

Predicados Prolog   

append(Lista1,Lista2,Lista3).  Verdadero si Lista3 es la concatenación de las dos primeras. 

call  Comprueba la veracidad de un predicado pasado como primer


parámetro.Siendo en resto de argumentos los parámetros del
predicado a evaluar. 

not(predicado).  Devuelve Verdadero si Predicado es Falso, Falso en caso de


Predicado Verdadero. 

Otros predicados  
predefinidos 

TRUE  Es un predicado que siempre devuelve un éxito 

fail  Es un predicado que siempre devuelve un fallo 

var(X)  Devuelve éxito si X no está instanciada. 

nonvar(X)  Al revés. 

atom(X)  Devuelve éxito si X es un "átomo" en el sentido de Prolog


(constantes y cadenas de caracteres son “átomos”; variables,
funciones y números no). 

integer(X)  Devuelve éxito si X es un entero. 


atomic(X)  Devuelve éxito si X es un "átomo" ó un entero. 

write(X)  Escribe en el periférico por defecto el contenido de la variable X. 

read(X)  Lee un valor del periférico por defecto y lo almacena en la


variable X. 

nl  Escribe un retorno de carro. 

==  Compara si dos “átomos” son iguales. 

\==  Compara si dos “átomos” son distintos.  

Disyunciones (;) hijo(X,Y):-padre(Y,X);madre(Y,X).

Conjunciones (,) tia(X,Y):-hermana(X,Z),padre(Z,Y).


 
 

También podría gustarte