¿"No igual" iniciar sesión en Visual Prolog?


No puedo encontrar ninguna documentación sobre "not equal" iniciar sesión 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).
Author: Mateusz Piotrowski, 2011-09-20

2 answers

No se que quieres decir con "no igual" (¿no unifica?), pero usted podría probar estos:

X \= Y
not(X = Y)
\+ (X = Y)
 42
Author: Kaarel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-20 12:49:59

La documentación de la segunda variante señalada por Kaarel se puede encontrar en esta página de referencia visual del Prolog.

Sin embargo, el problema con su código es un poco más profundo. Es necesario esperar a la prueba de no igualdad hasta que ambos términos Persona y Hermana están obligados, por lo que reorganizar las cosas como esta:

    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 pueden ser unificados, que es lo que hace la construcción anterior.

 6
Author: hardmath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-03 21:35:39