Tenim:
data Avi = Avi { nom :: [Char], edat :: Int, despeses :: [Int] } deriving (Show)
per emmagatzemar les dades d’un pensionista, on el camp despeses correspon a una sèrie de despeses mensulas enregistrades. A continuació tenim un exemple amb l’inicialització per a quatre pensionistes.
[ Avi { nom = "Joan", edat = 68, despeses = [640, 589, 573]}, Avi { nom = "Pepa", edat = 69, despeses = [710,550,570,698,645,512]}, Avi { nom = "Anna", edat = 72, despeses = [530,534]}, Avi { nom = "Pep", edat = 75, despeses = [770,645,630,650,590,481,602]} ]
Es demanen els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota. En tots els enunciats podeu suposar que sempre hi ha dades.
Les dues primeres funcions valen 15 punts, les dues següents 20 y l’última 30.
Observació
Aquest problema està basat en el problema "Pensions" 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/llistes/Pensions.html
Input
let avis = [ Avi { nom = "Joan", edat = 68, despeses = [640, 589, 573]}, Avi { nom = "Pepa", edat = 69, despeses = [710,550,570,698,645,512]}, Avi { nom = "Anna", edat = 72, despeses = [530,534]}, Avi { nom = "Pep", edat = 75, despeses = [770,645,630,650,590,481,602]} ] map promigDespeses avis edatsExtremes avis sumaPromig avis maximPromig avis despesaPromigSuperior avis 600
Output
[601,614,532,624] (68,75) 2371 624 ("Joan",68)