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.