inteligencia - prolog online
Cómo negar en Prolog (2)
La solución está realmente en el archivo de ejercicio en esa página:
female(X) :- /+ male(X).
Como dijo @Mog, negation es el operador unario /+
.
Soy nuevo en PROLOG y estoy al comienzo de los ejercicios en esta página . Dadas las reglas padre (X, Y) y masculino (X), estoy tratando de definir una regla madre (X, Y) como
mother(X, Y) :-
not(male(X)),
parent(X, Y).
Sin embargo, en GNU Prolog me aparece el siguiente error:
| ?- mother(lina, julia).
uncaught exception: error(existence_error(procedure,not/1),mother/2)
| ?-
/+/1
es el predicado de Prolog de ISO para "negar". Tenga en cuenta que "negar" significa que aquí no se puede demostrar en ese punto.
Puede referirse a esta excelente respuesta por @false para obtener más información sobre el tema