Cursos‎ > ‎Cursadas Anteriores‎ > ‎2017‎ > ‎Mañ-Jueves‎ > ‎Bitácora Jueves Mañana 2017‎ > ‎

Clase 04 - 04/05 - Typeclasses y polimorfismo

publicado a la‎(s)‎ 4 may. 2017 10:45 por Alf Sanzo   [ actualizado el 4 may. 2017 11:52 ]
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 Leche

En 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.

Comments