Cursosā€Ž > ā€ŽMartes Anualā€Ž > ā€ŽBitĆ”coraā€Ž > ā€ŽBitĆ”cora - Martes MaƱanaā€Ž > ā€Ž

Clase 2

Tarea

En un famoso foro de intercambio legal de información legítima y software aprobado por la ley, se quiere hacer un agregado al sistema de puntuación. Hay tres niveles de usuarios (newbie, intermedio y avanzado) y todos pueden puntuar. Los usuarios newbies otorgan como mÔximo 1 punto, los intermedios como mÔximo 5 puntos, y los avanzados como mÔximo 10 puntos.


Algunos ejemplos de usuarios:
("george", 2012)
("sexy99", 2011)
("boca_cabj", 2010)
("jroman", 2009)
(ā€œadminā€, 2008)

anioActual :: Int -- Magia negra si usan WinHugs, no pregunten, sólo pónganlo. Con GHC no hace falta.

anioActual = 2012


Se pide definir las funciones para los siguientes requerimientos. Se muestran algunos ejemplos de consulta:

1) La antigüedad de un usuario

> antiguedad ("sexy99", 2011)

1

2) Los puntos base de un usuario, sabiendo que se calculan como la antigüedad por la longitud del nombre.

> puntosBase ("sexy99", 2011)

6

3) El nivel de un usuario, sabiendo que si tiene menos de un aƱo de antigüedad es ā€œnewbieā€, si tiene menos de 50 puntos base es ā€œintermedioā€, y sino es ā€œavanzadoā€.

> nivel ("sexy99", 2011)

"intermedio"

4) Si un usuario puede otorgar cierta cantidad de puntos. Ɖsto es cierto si no es el usuario de nombre ā€œadminā€, y los puntos a otorgar no superan el mĆ”ximo otorgable para ese usuario segĆŗn su nivel.

> puedeOtorgar ("sexy99", 2011) 8

False -- (Ya que sexy99 es intermedio, y no puede otorgar mƔs de 5 puntos)


Para el martes que viene traer impreso el .hs con las funciones para resolver los puntos mencionados junto con las consultas que usaron para probar el correcto funcionamiento.

Resumenes

Resumen Clase 1y2 Funcional - mm 2012