unificacion sintaxis reglas predicados formularios ejemplos consultas prolog

sintaxis - Signo de interrogación, más, menos los nombres de variables Prolog anteriores



sintaxis de prolog (2)

+ significa que se espera que la Variable2 esté vinculada (a un término, o tal vez solo a alguna variable); puede pensar en esto como entrada al predicate/3 , que el predicado no intentará modificar en la ejecución.

- significa que se espera que la Variable3 esté limitada por el predicate/3 en su ejecución; puede pensar en esto como un resultado del predicate/3 . Sin embargo, esto no significa que no pueda vincularse, especialmente si sabe qué esperar y está comprobando el éxito, pero el predicate/3 se describe como una Variable3 potencialmente vinculante (unificadora) para algo.

? significa que la Variable1 puede ser unida ( + , entrada) o no ( - , salida) - el predicate/3 debe tratar ambos casos, si acepta alguno.

He buscado una explicación para esto, pero no he encontrado una. ¿Qué significa el signo de interrogación, el signo más y el signo menos que a veces preceden a los nombres de variables en la descripción de un predicado Prolog?

Ejemplo:

predicate(?Variable1,+Variable2,-Variable3)


  • ? significa: esta variable puede ser instanciada o no. Ambas formas son posibles.
  • + significa: esta variable es una entrada al predicado. Como tal, debe ser instanciado.
  • - significa: esta variable es una salida al predicado. Por lo general, no se crea una instancia, pero puede ser si desea verificar un "valor de retorno" específico.

Fuente: Capítulo 4 de la documentación de SWI Prolog.