Hoy vimos: - Polimorfismo
- Typeclasses
- Se puede leer el final del artículo de tipos
- Se puede leer el artículo específico de typeclasses
- También se puede leer el apunte al respecto
- Adjuntamos una imagen con el resumen de las typeclasses más comunes:
(es interesante entender que si la Persona se le hace un "deriving" es una manera de ponerla dentro de una Typeclass, por ejemplo con el "deriving Show".
- Para practicar y terminar de entender, se recomiendan la lección 3 y lección 4 de mumuki.
Tarea: TP Integrador- El enunciado está en la sección Trabajos Prácticos: "Functional Fest: (Primera Parte)" (La segunda parte todavía no la hagan)
- Se hace en grupo de 2 personas.
- Se entrega y corrige presencialmente.
- El soporte de entrega debe ser digital. En otras palabras, traigan un pendrive ó similar con los archivos .hs. Por las dudas, tenerlo subido en la nube (en un mail / un drive / repo) también es buena idea.
- Quienes puedan/quieran traigan su notebook con el TP.
Desafío Café con LecheEn el curso k2004 tiramos un desafío: El primer alumno del curso k2004 que lo resuelve (enviándolo por mail), se gana un café con leche (o alfajor y coca, o similar).
Enunciamos un poco más, para que se entienda, y no se pueda hacer trampa con el deriving:
data Persona = UnaPersona Int String deriving Show juancho = UnaPersona 45 "Juan" fran = UnaPersona 44 "Francisco" ana = UnaPersona 23 "Ana"
Hacer que la siguiente consulta funcione:
> between ana fran juancho True
Porque la cantidad de letras del nombre de juancho está entre la cantidad de letras del nombre de ana y de fran.
De la misma forma, sin codificar nada más, deben funcionar las funciones similares:
> maximum [ana, fran, juancho] UnaPersona 44 "Francisco"
¡Atenti al criterio! Las personas se comparan por cantidad de letras del nombre.
|