1.3. Traduzca las siguientes sentencias a reglas Prolog.
a). Cualquiera que tiene un hijo es feliz (introduzca la relación unaria llamada 'feliz').
X es feliz, si X es progenitor
feliz (X) :- progenitor (X,Y)
Esta pregunta de dos pasos se puede escribir en Prolog:
?- feliz(X).
b). Para todo X, si X tiene un hijo que tiene una hermana, entonces X tiene dos hijos
(introduzca la relación tiene-dos-hijos).
tiene_dos_hijos(X,Y):-hermana(Y,Z),progenitor(X,Y),progenitor(X,Z),mujer(Z).
1.4. Defina la relación 'nieto' usando la relación 'progenitor'.
Recomendación: Será similar a la relación abuelo.
Ahora queremos preguntar ¿quién es el nieto de roberto?
El programa no incluye la relación 'nieto', sin embargo podemos hacer la pregunta en dos pasos:
1). De Quién es progenitor roberto, asumimos que de algún Y.
2). De Quién es progenitor este Y, asumimos que de algún X.
Esta pregunta de dos pasos se puede escribir en Prolog:
?- progenitor( roberto, Y) , progenitor( Y, X ).
X = jaime
Y = patricia
En general, ¿quién es el nieto de Z?
El programa no incluye la relación 'nieto', sin embargo podemos hacer la pregunta en dos pasos:
1). De Quién es progenitor Z, asumimos que de algún Y.
2). De Quién es progenitor este Y, asumimos que de algún X.
Esta pregunta de dos pasos se puede escribir en Prolog:
?- progenitor( Z, Y) , progenitor( Y, X ).
No hay comentarios:
Publicar un comentario