UTNianos

Versión completa: [PdeP] Haskell Suma en lista de listas
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola necesito una mano con este codigo del TP

Enunciado: 3. Hacer la función totalRespuestasDe que recibe una persona y un mes, y retorna el total de correos que esa persona contestó en ese mes.
> totalRespuestasDe "cristian" 1
55

Mi codigo:
type RespuestasDiarias = (Empleado, Integer, Integer)
type Empleado = String
nombre(a,_,_) = a
dia(_,b,_) = b
cantidadRespuestas (_,_,c) = c
correos1 = [ ("juan", 1, 20), ("estela", 1, 40), ("juan", 2, 50), ("cristian", 2, 43), ("cristian", 3, 12) ]

funciones:
totalRespuestasDe unEmpleado = filter((==) unEmpleado.nombre) correos1
suma unEmpleado = cantidadRespuestas (head(totalRespuestasDe unEmpleado))

llegue hasta ahi... no se como sumar el valor .. suma me retorna en valor en INT pero no se como sumarlo... capaz sea mas facil de otra forma.

Gracias !!!
(23-08-2015 16:06)mpaione escribió: [ -> ]Hola necesito una mano con este codigo del TP

Enunciado: 3. Hacer la función totalRespuestasDe que recibe una persona y un mes, y retorna el total de correos que esa persona contestó en ese mes.
> totalRespuestasDe "cristian" 1
55

Mi codigo:
type RespuestasDiarias = (Empleado, Integer, Integer)
type Empleado = String
nombre(a,_,_) = a
dia(_,b,_) = b
cantidadRespuestas (_,_,c) = c
correos1 = [ ("juan", 1, 20), ("estela", 1, 40), ("juan", 2, 50), ("cristian", 2, 43), ("cristian", 3, 12) ]

funciones:
totalRespuestasDe unEmpleado = filter((==) unEmpleado.nombre) correos1
suma unEmpleado = cantidadRespuestas (head(totalRespuestasDe unEmpleado))

llegue hasta ahi... no se como sumar el valor .. suma me retorna en valor en INT pero no se como sumarlo... capaz sea mas facil de otra forma.

Gracias !!!

(sum . map (\(x,y,z) -> z )) [ ("juan", 1, 20), ("estela", 1, 40), ("juan", 2, 50), ("cristian", 2, 43), ("cristian", 3, 12) ]

El map lo que hace es aplicar una funcion a cada elemento de la lista y devolver otra lista con el resultado de la operacion, despues use composicion para la sum.

En lugar de usar la lambda \(x,y,z) -> z podrias usar la funcion que armaste cantidadRespuestas
Gracias, con eso puedo seguir !!
URLs de referencia