Guardem en una llista de tuples els vots rebuts pels candidats a l’ajuntament d’un municipi. El primer component de cada tupla és un string que conté el nom i cognoms del candidat i el segon és el nombre de vots. Per exemple:
[("Joan Pere Jorbina Palau", 570), ("Niceto Brunildo Fornells", 679), ("Mariona Puig Peix", 701), ("Adriana de Tor Quemada", 451)]
Es demanen els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota. Suposseu que a l’estructura sempre hi ha almenys un candidat.
[("Mariona Puig Peix", 15456), ("Arnau Osorio Lucas", 27654), ("Arnau Brigat Pelfred", 18654), ("Niceto Brunildo Fornells", 14567)]
Feu una funció votsIngressos :: [([Char], Int)] -> [([Char], Int)] -> [[Char]] en que, donades una llista de tuples de vots i una d’ingressos, retorni la llista dels candidats del que es desconeix els ingressos, és a dir, els que són a l’estructura de vots però no a la d’ingressos.
Les dues primeres funcions valen 20 punts i les altres dues 30.
Observació
Aquest problema és el problema "Candidats" creat per professors del departament de Ciències de la Computació amb docència a l’ETSEIB. Podeu consultar l’original a:
http://gie.cs.upc.edu/fi/temes/diccionaris/Candidats.html
Input
let ltVots = [("Joan Pere Jorbina Palau", 570), ("Niceto Brunildo Fornells", 679), ("Mariona Puig Peix", 701), ("Adriana de Tor Quemada", 451)] votsMinim ltVots 400 votsMinim ltVots 600 candidatMesVotat ltVots let ltIng = [("Mariona Puig Peix", 15456), ("Arnau Osorio Lucas", 27654), ("Arnau Brigat Pelfred", 18654), ("Niceto Brunildo Fornells", 14567)] votsIngressos ltVots ltIng rics ltVots ltIng
Output
False True "Mariona Puig Peix" ["Joan Pere Jorbina Palau","Adriana de Tor Quemada"] ["Arnau Osorio Lucas","Arnau Brigat Pelfred","Mariona Puig Peix*"]