Error de existencia de Prolog siguiendo Siete Idiomas en Siete Semanas


Solo estoy siguiendo el libro Siete Idiomas en Siete Semanas.

He instalado gprolog en mi máquina Mac usando el comando port install gprolog-devel y ejecuté el primer código prolog.

likes(wallace, cheese).
likes(grommit, cheese).
likes(wendolene, sheep).

friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z).

Si escribo {[2] } en el intérprete prolog, tengo un error

Excepción no capturada: error(existence_error(procedure,likes/2),top_level/0).

Prolog 1.3.1 no se pudo instalar en mi Mac, estoy usando prolog 1.4.0.

 26
Author: skaffman, 2011-04-06

1 answers

El intérprete interactivo gprolog ejecuta consultas contra una lista cargada de predicados, por eso obtiene la excepción existence_error. Usted tendrá que cargar sus predicados en él, ya sea mediante el uso de un IDE que hace la carga por usted o hacerlo manualmente.

Aquí hay un enfoque:

| ?- [user].
compiling user for byte code...
likes(wallace, cheese).
likes(grommit, cheese).
likes(wendolene, sheep).

friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z).

* Press Ctrl-D to end input. *
user compiled, 6 lines read - 909 bytes written, 15538 ms

yes
| ?- friend(wallace,grommit).

yes
| ?- friend(wallace,wendolene).

no

El manual gprolog escribe sobre esto en el capítulo Consultando un programa Prolog

 38
Author: Anders Lindahl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-06 07:38:30