tutorial sintaxis que portable elementos ejemplos descargar prolog iso-prolog

prolog - sintaxis - Prólogo: las cláusulas no están juntas en el archivo fuente



prolog tutorial (2)

Correcto, esta es una advertencia para aplicar las mejores prácticas, que consiste en reunir todas las cláusulas relacionadas en el archivo fuente. Aparte de eso, la proximidad de las cláusulas entre sí en el archivo de origen no importa, siempre que su orden relativo no cambie.

Tengo este pedazo de código:

% Family tree female(pen). male(tom). male(bob). female(liz). female(pat). female(ann). male(jim). parent(pam, bob). parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, pat). parent(pat, jim).

Me sale este error:

Warning: Clauses of female/1 are not together in source-file Warning: Clauses of male/1 are not together in source-file

¿Cuál es el propósito de este error?
Quiero decir, el archivo se compila y se ejecuta correctamente y soy consciente del significado del error. ¿Pero por qué?
¿Es solo un aviso para hacer cumplir las mejores prácticas?

Soy muy nuevo en la programación lógica.
¡Gracias!


La advertencia fomenta las mejores prácticas y ayuda a detectar errores tipográficos. Aquí hay un ejemplo de error:

small(ant). small(fly). small(molecule). smell(sweet). smell(pungent). small(floral).

El error es difícil de detectar, pero afortunadamente el compilador advierte:

Warning: /tmp/test.pl:7: Clauses of small/1 are not together in the source-file

Con la advertencia y un error de línea, uno puede encontrar y corregir el error tipográfico más rápidamente.

ISO Prolog proporciona la directiva discontiguous/1 contigua para silenciar esta advertencia para predicados específicos. Ver la sección 7.4.2.3 de la especificación. Se usa así:

:- discontiguous small/1.