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.