lunes, 27 de mayo de 2019

4.6 Programacion Logica con numeros, listas y arboles


?- X is 3+5.
X = 8
?- X = 3+5.
X = 3+5
?- 3+5 =:= 2+6.
yes
?- 3+5 == 2+6.
no
?- 3+5 == 3+5.
yes
Es más fácil entender la forma de una estructura complicada si la escribimos como un árbol en el que el nombre es un nodo y los componentes son las ramas.

Numéricos

Arboles

Listas


Arboles
La representación de hechos simples no es lo común en la clasificación de elementos, sino que se agrupan los elementos de un mismo tipo en una lista.
Las listas son colecciones de elementos en PROLOG.
Una lista se divide en dos partes:
• Cabeza. Es el primer elemento de la lista.
• Cola. Es una lista con el resto de los elementos de la lista.
La cabeza y la cola de una lista se separan con el símbolo "|".


La representación de hechos simples no es lo común en la clasificación de elementos, sino que se agrupan los elementos de un mismo tipo en una lista.
Las listas son colecciones de elementos en PROLOG. Una lista se divide en dos partes:
• Cabeza. Es el primer elemento de la lista.
• Cola. Es una lista con el resto de los elementos de la lista. La cabeza y la cola de una lista se separan con el símbolo "|".

Si definimos:
masuno(X, Y): - Y is X+1.
xmasuno (X, Y): - Y = X+1.
Observaremos el siguiente comportamiento:
?- masuno (,5).
Yes
?- xmasuno(4,5)
No

Numericos
En PROLOG los objetos numéricos pueden corresponder a tipos integer o float de C.
Para realizar operaciones numéricas, se tiene el predicado is, que se comporta como una asignación en un lenguaje imperativo.
Así, el objetivo X is <expresión> será verdadero cuando X unifique con el resultado numérico de evaluar <expresión>.

Expresiones

Una representación declarativa es aquélla en la que el conocimiento está especificado, pero en la que la manera en que dicho conocimiento debe ser usado no viene dado. El más popular de los sistemas de programación lógica es el PROLOG.
PROLOG cuenta con operadores para la unificación y comparación, sea con evaluación o sea simbólica, como los siguientes:
• X is Y %unificación con evaluación.
• X = Y %unificación simbólica
• X=:=Y %comparación con evaluación
• X == Y %comparación simbólica.

Se puede establecer que el lenguaje PROLOG está orientado a la Inteligencia Artificial, usando la programación lógica.

También utiliza pocos comandos en comparación con otros lenguajes de programación. Sólo hemos comenzado a explorar el poder que viene de la modelización de cálculo dentro de la lógica de predicados.



No hay comentarios:

Publicar un comentario