Matching (empataminto)
Dados dos términos cualesquiera decimos que "empatan" si se cumple lo siguiente :
(1). Son idénticos.
(2). Las variables en ambos términos pueden instanciarse a objetos de tal modo que después de la sustitución de las variables por estos objetos los términos puedan ser idénticos.
Ejemplo. Los términos fecha( D, M, 1900) y fecha( D1, mayo, Y1) empatan. Una instanciación que hace que ambos términos sean idénticos es:
D se instancia a D1.
M se instancia a mayo.
Y1 se instancia a 1992.
Las reglas generales para decidir si dos términos S y T empatan son las siguientes :
(1). Si S y T son constantes entonces S y T empatan únicamente si se
trata de los mismos objetos.
(2). Si S es una variable y T es cualquier cosa, entonces empatan y S se instancia a T. Y a la inversa, si T es la variable, entonces T se instancia a S.
(3). Si S y T son estructuras empatan únicamente si :
(a). S y T contienen el mismo functor principal, y
(b). Todos sus componentes correspondientes empatan.
La instanciación resultante se determina por la operación de
matching sobre los componentes.
![]() |
| Fig.1 Operaciones de matching. |
![]() |
| Fig.2 Resultados de matching. |


No hay comentarios:
Publicar un comentario