¿No es el mismo signo en Visual Prolog?
equals clause (2)
No puedo encontrar ninguna documentación sobre el signo "no igual" en Visual Prolog. Por favor, proporcione la solución correcta de este problema:
class predicates
sister : (string Person, string Sister) nondeterm(o,o).
clauses
sister(Person, Sister) :-
Person [not-equal-sign] Sister,
parent(Person, Parent),
parent(Sister, Parent),
woman(Sister).
La documentación para la segunda variante señalada por Kaarel se puede encontrar en esta página de referencia de Visual Prolog .
Sin embargo, el problema con su código va un poco más profundo. Debe esperar a que se realicen pruebas de no igualdad hasta que ambos términos Persona y Hermana estén vinculados, así que reorganice las cosas de esta manera:
sister(Person, Sister) :-
parent(Person, Parent),
parent(Sister, Parent),
not(Person = Sister),
woman(Sister).
También hay sintaxis para un operador de infijo "<>" que significa distinto (o diferente). Una vez que los dos términos están vinculados, esto debería dar el mismo resultado que verificar si los términos no se pueden unificar, que es lo que hace la construcción anterior.
No sé qué quiere decir con "no es igual" (¿no se unifica?), Pero puede probar esto:
X /= Y
not(X = Y)
/+ (X = Y)