UTNianos

Versión completa: Ayuda en Prolog
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, tengo una duda y no se resolver situaciones de este tipo, tengo una base de conocimiento, p.ej:

precio(50).
precio(55).
precio(80).
precio(51).
precio(59).
precio(87).
...

esta es sencilla pero puede ser mas complicado el caso. Como no se trata de una lista, donde si se como controlar la recurrencia. Como puedo hacer en estos casos un predicado p.ej: mayor_precio... donde recorra la base de conocimiento y devuelva el mayor.

muchas gracias. Saludos!
Hola! Una opción sería armar un predicado que relacione todo elemento que cumpla con el predicado precio y luego relacione, de esa lista, el máximo. Por ejemplo:

>>precios(Precios) :- findall(P, precio(P), Precios).
>>maxPrecio(Maximo, Precios) :- magiaLocaQueVasACodearVos
Podes usar, una vez que tenés la lista, este predicado:
http://www.swi-prolog.org/pldoc/man?pred...max_list/2
URLs de referencia