Vimos functores, polimorfismo y repasamos generadores e inversibilidad, not, forall. AsĆ, puedo tener en la base de datos diferentes ciudades (predicados aridad 1): ciudad(caba). ciudad(avellaneda). Y diferentes habitantes de ciudades (predicados aridad 2): habitante(laura, caba). habitante(juan, caba). habitante(pedro, avellaneda). Pero quĆ© pasa si de donde vive queremos saber mĆ”s datos? Por ejemplo, queremos la dirección completa, que para una casa es la calle y nĆŗmero. habitante(laura, casa(avIndependencia, 1234), caba). Podemos consultar habitante(laura, Direccion) y nos responde, pero no es un hecho en sĆ mismo la dirección, no podemos consultar direccion(avIndependencia, 1234,Ciudad), ni tampoco consultar todas las direcciones posibles direccion(Calle, Nro, Ciudad). En cambio, si une habitante vive en un departamento, la dirección tiene tambiĆ©n piso y depto. habitante(federico, departamento(avCordoba, 1545, 0, āAl fondoā), caba). habitante(silvia, departamento(medrano, 444, 7, āHā), caba). habitante(susana, departamento(medrano, 444, 7, āHā), caba). habitante(gerardo, departamento(tucuman, 546, 11, āPorterĆaā), caba). Si una persona vive en el Ć”mbito rural, la dirección es ruta y km: habitante(roxana, rural(āRN 2ā, 125)), buenosAires). habitante(roxana, rural(āRP 305ā, 45)), buenosAires). Propuestas para ejercitar: Armar predicados: viveEnCasa/1 (dado un nombre de habitante, es verdadero si vive en depto) viveEnDepto/1 (dado un nombre de habitante, es verdadero si vive en depto) mismaCalleORuta/2 (dados 2 nombres de habitantes, es verdadero si viven en la misma calle o ruta) vivenJuntes/2 (dados 2 nombres de habitantes, es verdadero si viven en la misma casa, dpto o casa rural) todoElMundoViveEnDepto/1 (dada una ciudad, es verdadero si todes sus habitantes viven en deptos) |