14-04-2012, 22:25
Tengo una duda muy sarpada con el orden superior. Quiero comparar si ambas condiciones devuelven true con la misma lista (ej: ("Leonardo",[4,6,7,8])), por lo tanto supongo que deberia usar filter 2 veces. Primero para el nombre y luego para ver si tiene mas de 3 notas.
Pregunto porque estoy hace bastante con esto y no me cierra del todo. Si uso any directamente, seria erroneo. Tambien se que puedo usar composicion de funciones, en teoria, pero no me sale
Alguna ayuda? Estoy hasta las bolas y no encuentre algun tutoria/libro que diga que se sarpe explicando.
Saludos
Pregunto porque estoy hace bastante con esto y no me cierra del todo. Si uso any directamente, seria erroneo. Tambien se que puedo usar composicion de funciones, en teoria, pero no me sale
Alguna ayuda? Estoy hasta las bolas y no encuentre algun tutoria/libro que diga que se sarpe explicando.
Saludos
Cita:Dadas las siguientes definiciones:
find f lista = head (filter f lista)
--Este es un curso a modo de ejemplo para que lo usen en sus pruebas
cursoK1024 = [("Leonardo",[4,6,7,8]),("Raphael",[1]),("Donatello",[10,10,10]),("Michelangelo",[4,4])]
Se quiere
Dado el nombre de una persona y un curso saber si esa persona es un alumno regular de dicho curso.
Esto se da si se cumplen las siguientes condiciones:
que esa persona sea un alumno del curso y
que haya rendido al menos 3 parciales
Main> esRegularEn cursoK1024 "Shredder"
False
Main> esRegularEn cursoK1024 "Raphael"
False
Main> esRegularEn cursoK1024 "Leonardo"
True
find f lista = head (filter f lista)
curso = [("Leonardo",[4,6,7,8],("Raphael",[1],("Donatello",[10,10,10],("Michelangelo",[4,4]]
sacarnombre(nombre,_) = nombre
sacarnotas(_,notas) = notas
nombres = map sacarnombre
notas = map sacarnotas
rendido lis = filter ((>=3).length.sacarnotas) lis
esta lis nom = filter ((==nom).sacarnombre) lis