matching
È possibile un match fra S e T se:
- S e T sono costanti e sono lo stesso oggetto.
- Se S è una variabile e T qualsiasi cosa
il match è possibile e la variabile S viene
istanziata all'oggetto T. Analogamente se T è
una variabile.
- Se S e T sono strutture il matching può
avvenire se e solo se:
- S e T hanno lo stesso funtore principale e
lo stesso numero di argomenti.
- le componenti corrispondenti delle due strutture matchano.
La istanziazione risultante è deteminata dal matching
delle componenti.
- Se S e T sono entrambe variabili non istanziate,
il matching ha successo e quando una qualunque delle due variabili
viene istanziata, l'altra subisce la stessa istanziazione.
Il matching può essere richiesto esplicitamente usando
l'operatore = (uguaglianza).
Il goal S=T avrà successo se
il matching fra S e T è possibile.
L'operatore \= indica la non uguaglianza.
Il goal S\=T avrà successo se
il matching fra S e T non è possibile.