Operadores
PROLOG, como cualquier lenguaje de programación tiene diferentes tipos de operadores para trabajar con distintos datos de entrada. Estos operadores pueden estar clasificados como operadores aritméticos, y operadores de comparación.
Operadores aritméticos
Los operadores aritméticos se representan en la forma clásica de las funciones aritméticas estándar. La tabla 1, muestra este tipo de operadores.
Tabla 1.- Operadores aritméticos y su significado. En la columna “OPERADOR”, podemos ver que después del operador, se tiene la indicación con la forma “/número”, esto da a notar que es una función que tiene una cantidad de parámetros igual a numero. Por ejemplo el indicador /2 implica que tiene dos parámetros para su correcta ejecución.
OPERADOR | SIGNIFICADO |
+ /2 | Suma. |
– /2 | Resta. |
* /2 | Multiplicación. |
/ /2 | División. Devuelve el resultado exacto de la división, devolviendo enteros y decimales. |
// /2 | División entera. Devuelve solo el valor entero de la división, elimina los decimales del resultado. |
mod /2 | Residuo. Devuelve el residuo de una división, en forma de entero |
^ /2 | Potencia. Devuelve la exponenciación en la forma 3 ^ 2 =9. |
En PROLOG es posible realizar una consulta aritmética sin necesidad de realizar un programa en el archivo .pl, basta con poner la consulta en el intérprete en la siguiente manera:
1 |
?. X is 5 + 3. |
A lo cual, el intérprete generará la respuesta X = 8.
Como se puede observar en la consulta realizada, lo que indica la asignación del resultado a la variable X, es la palabra reservada “is”.
Ejercicio 1.
Realizar 5 consultas en el intérprete de PROLOG con los diferentes operadores aritméticos.
Aunque los operadores mostrados enl a tabla 1, son los representantes de las operaciones básicas aritméticas, PROLOG también tiene otro tipo de funciones matemáticas que se pueden utilizar sin necesidad de agregar programas especiales o algún tipo de librería, estas operaciones pueden verse en la tabla 2.
Tabla 2. Funciones matemáticas que el lenguaje de programación PROLOG ofrece.
Operador matemático | Operación que realiza |
sqrt(X) | Obtiene la raíz cuadrada del valor $X$. |
log(X) | Obtiene el logaritmo del valor $X$. |
ln(X) | Obtiene el logaritmo natural del valor $X$. |
abs(X) | Obtiene el valor absoluto del valor $X$. |
sin(X) | Obtiene el seno del valor $X$. |
cos(X) | Obtiene el coseno del valor $X$. |
tan(X) | Obtiene la tangente del valor $X$. |
La forma de utilizar estas funciones es sumamente simple, ya que de igual forma que los operadores aritméticos, basta con realizar una consulta en la forma:
1 |
?. X is sqrt(9). |
Consulta que dará como resultado $X = 3$.
Ejercicio 2. Obtener el seno, el coseno y la tangente de 1534, utilizando consultas en PROLOG.
Operadores de comparación
Los operadores e comparación, son como en muchos otros lenguajes de programación, comparadores de tipo booleano, es decir, la respuesta a la consulta será un valor verdadero o falso, dependiendo de si la condición es cumplida o no. Los operadores de este tipo pueden visualizarse en la tabla 3.
Tabla 3. Representación de los operadores de comparación y su funcionamiento.
Operador | Definición |
= | Igualdad. Operador que evalúa si dos elementos son iguales. |
> | Mayor que. Elemento que evalúa si el primer elemento es mayor que el segundo elemento. |
< | Menor que. Elemento que evalúa si el primer elemento es menor que el segundo elemento. |
>= | Mayor o igual que. Elemento que evalúa si el primer elemento es mayor o igual que el segundo elemento. |
<= | Menor o igual que. Elemento que evalúa si el primer elemento es menor o igual que el segundo elemento. |
=/= | Diferente. Elemento que evalúa si dos elementos son diferentes entre si. |
is | Evaluador. Palabra reservada que evalúa la expresión definida del lado derecho, y guarda el resultado en la variable definida en el lado izquierdo de ella. |
Cuando dos objetos que son símbolos o cadenas de caracteres son comparados, los caracteres son convertidos a su equivalente ASCII. El valor de cada carácter es examinado a partir del operador relacional, de izquierda a derecha.
De manera simple, podemos realizar la siguiente consulta $6>7.$, a lo que PROLOG contestara false; pero si realizamos la siguiente consulta $6<7.$, PROLOG contestara true.