Ganadores de las elecciones
Los resultados de las votaciones a delegado en un grupo de clase se recogen mediante listas de asociación. Por ejemplo,
1 2 3 |
votos :: [(String,Int)] votos = [("Ana Perez",10),("Juan Lopez",7), ("Julia Rus", 27), ("Pedro Val",1), ("Pedro Ruiz",27),("Berta Gomez",11)] |
Definir la función
1 |
ganadores :: [(String,Int)] -> [String] |
tal que (ganadores xs) es la lista de los estudiantes con mayor número de votos en xs. Por ejemplo,
1 |
ganadores votos == ["Julia Rus","Pedro Ruiz"] |
Soluciones
1 2 3 4 5 6 7 |
votos :: [(String,Int)] votos = [("Ana Perez",10),("Juan Lopez",7), ("Julia Rus", 27), ("Pedro Val",1), ("Pedro Ruiz",27),("Berta Gomez",11)] ganadores :: [(String,Int)] -> [String] ganadores xs = [c | (c,x) <- xs, x == maxVotos] where maxVotos = maximum [j | (i,j) <- xs] |