+
signifie que Variable2
devrait être lié (à un terme, ou peut-être une variable) - vous pouvez penser à cela comme entrée à predicate/3
, que le prédicat ne tentera pas de modifier en cours d'exécution.
-
signifie que Variable3
devrait être lié par predicate/3
dans elle est l'exécution - vous pouvez penser à cela comme sortie de predicate/3
. Cela ne veut pas dire qu'il ne peut pas être lié, cependant, en particulier si vous savez à quoi s'attendre et vérifiez le succès, mais predicate/3
est décrit comme potentiellement liant (unificatrice) Variable3
à quelque chose.
?
signifie que Variable1
peut être soit être lié (+
, entrée) ou non (-
, sortie) - predicate/3
devrait traiter les deux cas, si elle accepte non plus.