27-02-2013, 10:53
Buenas, estaba resolviendo el final del 6/8/2011 y en el ejercicio de Prolog, figura este código:
En uno de los puntos, preguntan si esInteresante/1 es inversible, y respondo que no, porque no tiene un predicado generador a partir del cual obtener todas las soluciones posibles. Mi solución entonces sería agregar esto:
Mi pregunta es, ¿se puede resolver agregando un solo predicado generador, o sí o sí se necesita un generador para cada tipo de dato que pueda llegar a aceptar esInteresante/1? Gracias!
seVende(libro(“Fundación”, asimov)).
seVende(libro(“La Ilíada”, homero)).
seVende(pelicula(“Casablanca”, 1942, “Michael Curtiz”)).
seVende(pelicula(“Jumanji”, 1995, “Joe Johnston”)).
esInteresante(libro( _ , asimov)).
esInteresante(pelicula( _ , Año , _ )): Año < 1970.
En uno de los puntos, preguntan si esInteresante/1 es inversible, y respondo que no, porque no tiene un predicado generador a partir del cual obtener todas las soluciones posibles. Mi solución entonces sería agregar esto:
esInteresante(libro(Titulo, asimov)) :- seVende(libro(Titulo, asimov))
esInteresante(pelicula(Titulo, Año, Director)) :- seVende(pelicula(Titulo, Año, Director)), Año < 1970
Mi pregunta es, ¿se puede resolver agregando un solo predicado generador, o sí o sí se necesita un generador para cada tipo de dato que pueda llegar a aceptar esInteresante/1? Gracias!