Cursos‎ > ‎Martes Anual‎ > ‎Bitácora‎ > ‎Bitácora - Martes Mañana‎ > ‎

Clase 4

Tarea (TP 3 de Funcional) 

TIP: Recuerden imprimir la Guía de Lenguajes !

Enunciado

Dado el siguiente archivo .hs por cada punto explicar porque tiene errores y arreglarlos.

Los errores pueden ser tanto de sintaxis como "teóricos" (esto significa que compila pero IGUAL tiene errores que pueden ser conceptuales). Todos los puntos tienen algo para arreglar.

Explicar con sus palabras los errores y proponer una solución (si la misma solución aplica a varios puntos no repetir, aclarar los puntos que soluciona).

"Explicar con sus palabras" significa que no copien el error que les tira Haskell (en caso de que no compile) sino que expliquen desde los conceptos del paradigma por qué hay un error ahí.

Se intentó elegir nombres que hagan entender por si solos la intención de la función, en caso de no entender qué hace una función determinada envíen sus dudas a la lista del curso pdep-mmt@googlegroups.com

-- tp3.hs

--Punto 1 todosIguales elementos = length (filter (head elementos==) elementos) == length elementos --Punto 2 todosIguales' elementos = all (fst elementos==) elementos --Punto 3 todosIguales'' elementos = all (head elementos==otroElemento) elementos --Punto 4 todosIguales''' elementos = all (head.elementos.==) elementos --Punto 5
esNotaAprobada nota = nota >= 4

promedio numeros = sum numeros `div` length numeros
estaAprobado unAlumno = promedio (snd unAlumno) >= 5 todosDesaprobaronAlMenosUnaVez alumnos = any (not.estaAprobado) alumnos --Punto 6 todosDesaprobaronAlMenosUnaVez' alumnos = all (any (4>) (snd unAlumno)) alumnos --Punto 7 todosDesaprobaronAlMenosUnaVez'' alumnos = all (any (\unaNota -> not (estaAprobado unaNota)).snd) alumnos --Punto 8 cantidadDePalindromos palabras = length (filter esPalindromo palabras) esPalindromo unaPalabra | reverse unaPalabra /= unaPalabra = False | otherwise = True --Punto 9 esApestosa (nombre,director,puntuaciones) = all (3>) puntuaciones directorPelicula (nombre,director,puntuaciones) = director directoresApestosos peliculas = [directorPelicula (nombre,director,puntuaciones) | (nombre,director,puntuaciones) <- peliculas, all (3>) puntuaciones] --Punto 10 (BONUS: esto significa que su resolución es opcional) find f lista = head [x | x <- lista, f x ] maximum = find (\x -> all (x>) lista)

Resumenes

Resumen Clase 4 Funcional - mm 2012


Comments