Está en la página 1de 3

Haskell Holidays

Una persona tiene


● un nombre,
● su edad que se mide en años,
● un nivel de stress que va de 1 a 100,
● una lista de sus preferencias, que indican si un destino le gusta (ver más adelante)
● y sus amigues

Punto 1: Datos de una persona


Puntos de scoring
Queremos saber los puntos de scoring de una persona, que se da de la siguiente manera:
● si tiene una cantidad par de amigues, multiplica el nivel de stress por la edad
● si en cambio tiene más de 40 años, multiplica la cantidad de amigues por la edad
● de lo contrario, es la cantidad de letras del nombre * 2

Debe resolverlo utilizando guardas, composición, aplicación parcial y funciones de orden


superior.

Punto 2

No se puede utilizar recursividad ni definir funciones auxiliares en ningún paso de este


punto.

Parte a: Nombre firme


Saber si una persona tiene un nombre firme, que son aquellos que comienzan con la letra P
(como Pedro Velasco).

Parte b: Persona interesante


Saber si una persona es interesante, esto ocurre si tiene 2 ó más amigues

Punto 3: Destinos
Queremos modelar los siguientes destinos turísticos, que afectan de diferente manera a las
personas:
● Mar del Plata: depende del mes, si es enero o febrero (mes 1 ó 2) aumenta el nivel de
stress en 10, en el resto del año disminuye tanto como la edad de la persona hasta un
máximo de 20.
● Las Toninas: si se va con plata disminuye el nivel de stress de la persona a la mitad, si se
va sin plata equivale a haber ido a Mar del Plata en julio.
● Puerto Madryn: disminuye a 1 el nivel de stress y hace que tengas como amigue a Juan,
que no tiene preferencias, no tiene amigues, edad = 37 y nivel de stress = 80.
● La Adela: no produce cambios en la persona que se va.

1 de 3
Importante: no repetir ideas en este punto.

Punto 4: Preferencias
Ahora sí que tenemos los destinos, las preferencias marcan cuáles son los tipos de destinos que
les gustan a las personas. Debe modelar las siguientes preferencias:
● Desenchufarse: las personas que tienen esta preferencia quieren que luego de viajar a
ese destino su nivel de stress disminuya.
● EnchufarseEspecial: las personas que tienen esta preferencia quieren que luego de
viajar su nivel de stress sea igual a un cierto valor que elles establezcan como
parámetro (por ejemplo, quieren tener 20).
● Socializar: las personas que tienen esta preferencia quieren tener más amigues luego
de viajar a ese destino.
● SinPretensiones: las personas que tienen esta preferencia les da lo mismo lo que pase
después del viaje.

Punto 5: Contingentes
No se puede utilizar recursividad en ningún paso de este punto.

Un contingente es un grupo de personas que quiere armar un viaje.

Parte a: Destino apto


Queremos saber si un destino es apto para un contingente, esto significa que todos tienen
preferencia por ese destino (esto es que alguna de las preferencias se cumple para dicho
destino).

Aclaración: una persona que tiene 3 preferencias y en ninguna se verifica que el destino lo
cumple, no tiene preferencia por ese destino. Si de sus preferencias, alguna de ellas verifica que
el destino lo cumple (por ejemplo, socializar con Puerto Madryn), entonces decimos que la
persona tiene preferencia por ese destino (no importa que las otras preferencias no se cumplan
para ese mismo destino).

Parte b: Destino piola


Queremos saber si un destino es piola, esto ocurre cuando el total de stress de un contingente
simulando que viajó a ese destino suma menos de 100.

Debe resolverlo utilizando únicamente composición, aplicación parcial y funciones de orden


superior. No puede utilizar recursividad.

Punto 6
Un paquete es un conjunto de destinos turísticos.

2 de 3
No se puede utilizar recursividad ni definir funciones auxiliares
en ningún paso de este punto.

Parte a: Stress de un paquete


Queremos saber con cuánto nivel de stress queda la persona luego de ir a un conjunto de
destinos turísticos.

Parte b: Alguna persona la pasa bien


Dado un contingente, queremos saber si alguna persona la pasa bien, esto ocurre si algún
amigue de esa persona forma parte del contingente.

Nota: considerar que dos personas son la misma si tienen al menos el mismo nombre.

Punto 7: Contingente TOC

ATENCIÓN: debe resolver este punto con recursividad

Dado un contingente, queremos saber si los que están en la posición par tienen todos un
scoring par. Debe funcionar para un contingente de personas par o impar.

Punto 8: Contingente infinito


Defina un contingente infinito de personas.
A. ¿es posible determinar si alguna persona de ese contingente infinito la pasa bien?
Justifique su respuesta.
B. ¿es posible saber si un destino es piola para ese contingente infinito? Justifique su
respuesta

3 de 3

También podría gustarte