Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
Proveniente del francés PROgrammation en LOGique, es un lenguaje de programación lógico e interpretado, bastante conocido en el medio de investigación en Inteligencia Artificial.
PROLOG está orientado a la resolución de problemas mediante el cálculo de predicados, basado en:
Preguntas a la base de datos.
Pruebas matemáticas.
Tipos de datos primitivos: variables y constantes:
Enteros
Reales
Caracteres
La ejecución de prolog consiste en una búsqueda en profundidad de un árbol conteniendo todas las posibles soluciones. Para cada una de ellas se evaluará su corrección. La búsqueda se puede hacer más eficiente mediante la poda del árbol de búsqueda (corte).
Programacion en Prolog:
Existen dos tipos de clausulas: HECHOS Y REGLAS.
gato(tom).
que es equivalente a la regla:
gato(tom) :- true.
El predicado predefinido true/0 siempre es verdad.
Prolog también posee varios predicados predefinidos para interacción con el sistema operativo, como entrada/salida, gráficos y comunicaciones de datos.
Expresiones:
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.
?- X is 3+5.
X = 8
?- X = 3+5.
X = 3+5
?- 3+5 =:= 2+6.
yes
?- 3+5 == 2+6.
no
Listas
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 "|".
%%
%% declaraciones
%%
padrede('juan', 'maria'). % juan es padre de maria
padrede('pablo', 'juan'). % pablo es padre de juan
padrede('pablo', 'marcela').
padrede('carlos', 'debora').
Creación y consulta de listas
plantas([manzana, naranja, limon, espinaca, gardenia, alfalfa,pino]).
lista([1,2,3]).
?-lista([H|T]).
H=1
T=[2,3]
?-lista([H,J|T]).
H=1
J=2
T=[3]