El shell de Prolog
El shell de Prolog es una aplicación que permite
ejecutar objetivos y ver las ligaduras de las variables
de manera interactiva. Pueden existir diferencias entre unos
entornos de desarrollo y otros respecto a su uso. Para ilustrar su
uso, nosotros utilizaremos el shell de
Ciao/Prolog.
Ejecutando el shell
El shell es una aplicación más que podemos ejecutar
en nuestro sistema operativo. En nuestro caso, la aplicación
se denomina ciaosh. Al ejecutarla aparece un típico
mensaje de bienvenida:
Ciao-Prolog 1.4 #0: Sat Nov 27 19:27:11 1999
?-
El símbolo ?- nos indica la zona
donde podemos escribir los objetivos a ejecutar.
Para mejorar la legibilidad en los ejemplos,
destacamos
el texto que el usuario teclea para distinguirlo
de la salida por pantalla del shell.
Mi primer objetivo
Cuando arrancamos el shell, los únicos objetivos que podemos ejecutar
corresponden a predicados predefinidos en el sistema. Nuestro
predicado predefinido favorito es la igualdad =/2. Así
que vamos a probarlo:
Ciao-Prolog 1.4 #0: Sat Nov 27 19:27:11 1999
?- t(X,3) = t(4,Z).
X = 4,
Z = 3 ?
Observese que los objetivos acaban en un punto (.), si pulsamos intro
antes de escribir el punto ocurre un salto de línea,
pero nada más. Cuando escribimos el punto y pulsamos
INTRO es cuando se ejecuta el objetivo.
A continuación, el shell nos dice si el objetivo tiene
éxito o no, y cuales son las ligaduras de las variables.
Después aparece un signo de interrogación (?).
En este momento es cuando le podemos pedir que nos muestre
otra solución
tecleando un punto y coma (;) y pulsando
INTRO:
Ciao-Prolog 1.4 #0: Sat Nov 27 19:27:11 1999
?- t(X,3) = t(4,Z).
X = 4,
Z = 3 ? ;
no
?-
Como no hay más soluciones en nuestro ejemplo, el shell dice
"no" y nos permite escribir otro objetivo. Si no hubiesemos deseado
más soluciones simplemente habríamos pulsado
INTRO.
Compilando y cargando codigo
Puesto que en el shell solamente podemos ejecutar objetivos, la forma
de compilar y cargar código es ejecutando un objetivo.
Esto puede variar de un shell a otro, pero habitualmente se hace
así:
?- consult('prog1.pl').
yes
?-
Obsérvese que el nombre del fichero fuente (y su ruta,
si es necesario) se escribe en un término cero-ario entre comillas
simples. Esta es la forma habitual de escribir nombres de fichero.
?- consult('c:/temp/prog1.pl').
yes
?-
Quiero irme de aquí
Cuando nos cansamos de jugar con el shell, podemos terminar la
aplicación ejecutando el predicado halt/0,
o bien pulsando CTRL-D:
?- halt.
Process Ciao/Prolog<1> finished