Ayuda por favor!

Jorge
07 de Enero del 2005
Tengo que hacer una práctica para la universidad de un programilla bastante fácil pero es que no entiendo el enunciado muy bien:

Dada la especificación de los siguientes dominios:

Fecha = Tupla (|N+,|N+,|N+)
IntervaloFechas = Tupla (Fecha,Fecha)
Intervalos = Colección (IntervaloFechas)

y dada la especificación de la siguiente función:

FUNCIÓN NoSolapados (colI : Intervalos;
i : IntervaloFechas) --> Intervalos

PRE: Se cumple el INV (IntervaloFechas) para "i" y todos los intervalos de "colI".
Se cumple INV (Fecha) para todas las fechas, tanto de "i"
como de todos los intervalos de "colI".

POST: resultado es la colección de todos los intervalos de "colI" que no se solapan con "i".
Se entiende que dos intervalos de fechas no se solapan si no tienen ninguna fecha común.

Se pide, redactar en Ada la función "NoSolapados" junto con las funciones auxiliares:
"EsAnterior", "Pertenece", y "EstanSolapados". Dichas funciones hay que resolverlas en el archivo
"Prac11.hs" que sirve de plantilla.

Y esa plantilla es esta:
-- Definición de tipos

type TipoFecha = (Int,Int,Int)
type TipoIntervaloFechas = (TipoFecha,TipoFecha)
type TipoIntervalos = [TipoIntervaloFechas]

----------------------------------------------------------

fEsAnterior :: (TipoFecha, TipoFecha) -> Bool
-----Código de la solución

fPertenece :: (TipoFecha, TipoIntervaloFechas) -> Bool
-----Código de la solución

fEstanSolapados :: (TipoIntervaloFechas, TipoIntervaloFechas) -> Bool
-----Código de la solución

fNoSolapados :: (TipoIntervalos,TipoIntervaloFechas) -> TipoIntervalos
-----Código de la solución