30-07-2014, 22:47
Hola compañeros, cómo están?
Yo, acá haciendo ejercicios del paradigma lógico. Logré comprender bastante pero me trabé en un tema y no puedo avanzar.
Tengo esta base de conocimientos:
%vuelo(Codigo de vuelo, capacidad en toneladas, [lista de destinos] ).
vuelo(arg845, 30, [escala(rosario,0), tramo(2), escala(buenosAires,0)]).
vuelo(MH101, 95, [escala(kualaLumpur,0), tramo(9), escala(capeTown,2), tramo(15), escala(buenosAires,0)]).
vuelo(DLH470, 60, [escala(berlin,0), tramo(9), escala(washington,2), tramo(2), escala(nuevaYork,0)]).
vuelo(AAL1803, 250, [escala(nuevaYork,0), tramo(1), escala(washington,2), tramo(3), escala(ottawa,3), tramo(15), escala(londres,4), tramo(1), escala(paris,0)]).
vuelo(BLE849, 175, [escala(paris,0), tramo(2), escala(berlin,1), tramo(3), escala(kiev,2), tramo(2), escala(moscu,4), tramo(5), escala(seul,2), tramo(3), escala(tokyo,0)]).
vuelo(NPO556, 150, [escala(kiev,0), tramo(1), escala(moscu,3), tramo(5), escala(nuevaDelhi,6), tramo(2), escala(hongKong,4), tramo(2), escala(shanghai,5), tramo(3), escala(tokyo,0)]).
vuelo(DSM3450, 75, [escala(santiagoDeChile,0), tramo(1), escala(buenosAires,2), tramo(7), escala(washington,4), tramo(15), escala(berlin,3), tramo(15), escala(tokyo,0)]).
Básicamente, quería saber si me pueden orientar para resolver el primer ejercicio/predicado:
tiempoTotalVuelo/2 : Relaciona un vuelo con el tiempo que lleva en total, contando las esperas en las escalas (y eventualmente en el origen y/o destino) más el tiempo de vuelo.
El único predicado que armé es el siguiente (me devuelve la lista de escalas y tramos):
Ahora lo que no sé, es como trabajar sobre cada functor.
Alguien podría darme una mano, por favor?
Saludos!!
Yo, acá haciendo ejercicios del paradigma lógico. Logré comprender bastante pero me trabé en un tema y no puedo avanzar.
Tengo esta base de conocimientos:
%vuelo(Codigo de vuelo, capacidad en toneladas, [lista de destinos] ).
vuelo(arg845, 30, [escala(rosario,0), tramo(2), escala(buenosAires,0)]).
vuelo(MH101, 95, [escala(kualaLumpur,0), tramo(9), escala(capeTown,2), tramo(15), escala(buenosAires,0)]).
vuelo(DLH470, 60, [escala(berlin,0), tramo(9), escala(washington,2), tramo(2), escala(nuevaYork,0)]).
vuelo(AAL1803, 250, [escala(nuevaYork,0), tramo(1), escala(washington,2), tramo(3), escala(ottawa,3), tramo(15), escala(londres,4), tramo(1), escala(paris,0)]).
vuelo(BLE849, 175, [escala(paris,0), tramo(2), escala(berlin,1), tramo(3), escala(kiev,2), tramo(2), escala(moscu,4), tramo(5), escala(seul,2), tramo(3), escala(tokyo,0)]).
vuelo(NPO556, 150, [escala(kiev,0), tramo(1), escala(moscu,3), tramo(5), escala(nuevaDelhi,6), tramo(2), escala(hongKong,4), tramo(2), escala(shanghai,5), tramo(3), escala(tokyo,0)]).
vuelo(DSM3450, 75, [escala(santiagoDeChile,0), tramo(1), escala(buenosAires,2), tramo(7), escala(washington,4), tramo(15), escala(berlin,3), tramo(15), escala(tokyo,0)]).
Básicamente, quería saber si me pueden orientar para resolver el primer ejercicio/predicado:
tiempoTotalVuelo/2 : Relaciona un vuelo con el tiempo que lleva en total, contando las esperas en las escalas (y eventualmente en el origen y/o destino) más el tiempo de vuelo.
El único predicado que armé es el siguiente (me devuelve la lista de escalas y tramos):
[b]listaDestinos(Vuelo,[X]):- findall(A,vuelo(Vuelo,30,A),[X|Xs]).[/b]
Ahora lo que no sé, es como trabajar sobre cada functor.
Alguien podría darme una mano, por favor?
Saludos!!