Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa |
introalg:taller09_5 [2009/04/27 03:19] – laura | introalg:taller09_5 [2018/08/10 03:03] (actual) – editor externo 127.0.0.1 |
---|
probar con [345,20,46,0], [] y [3]. | probar con [345,20,46,0], [] y [3]. |
| |
* Generalizar la función ''veintePorCiento'' definiendo ''porCiento :: Int -> [Float] -> [Float]'' que dado un número //n// y una lista, devuelve el //n// por ciento de cada uno de los elementos de la lista. Ejemplo: //porCiento 10 [200,87,6] = [20,8.7,0.6]//. Puede ser útil la función ''fromIntegral'' que transforma un ''Int'' en ''Float''. | * Generalizar la función ''veintePorCiento'' definiendo ''porCiento :: Float -> [Float] -> [Float]'' que dado un número //n// y una lista, devuelve el //n// por ciento de cada uno de los elementos de la lista. Ejemplo: //porCiento 10 [200,87,6] = [20,8.7,0.6]//. |
| |
* Generalizar la función ''duplicar'' definiendo ''multiplicar :: Int -> [Int] -> [Int]'' que dada un número //n// y una lista, multiplica cada uno de los elementos por //n//. Ejemplo: //multiplicar.3.[3,0,-2] = [9,0,-6]//. | * Generalizar la función ''duplicar'' definiendo ''multiplicar :: Int -> [Int] -> [Int]'' que dada un número //n// y una lista, multiplica cada uno de los elementos por //n//. Ejemplo: //multiplicar.3.[3,0,-2] = [9,0,-6]//. |
| |
probar con [0], [], [1], [0,0,0,0], [0,1,0,1], [1,2,3], ['a','b','c'] | probar con [0], [], [1], [0,0,0,0], [0,1,0,1], [1,2,3], ['a','b','c'] |
| |
* Definir la función //hay0.xs//, //hay0 : [Int] -> Bool// que dada una lista //xs// devuelve //True// si ésta contiene algún 0. Ejemplo //hay0.[1,2] = False//, //hay0.[1,4,0,5] = True//. | |
| |
probar con [], [0,0,0,0], [1,2,3,4], [0] y [1,5,7,0,9] | |
| |
* Definir la función ''hayun0 :: [Int] -> Bool'', que dada una lista devuelve True si hay algún 0 en la lista. | * Definir la función ''hayun0 :: [Int] -> Bool'', que dada una lista devuelve True si hay algún 0 en la lista. |
=== Miscelánea un poco más complicada === | === Miscelánea un poco más complicada === |
| |
* Definir la función ''cuantosCumplen :: (Int -> Bool) -> [Int] -> Int'', que dado un predicado //p// y una lista de enteros //xs//, cuenta cuántos elementos de la lista cumplen con //p//. | * Definir la función ''cuantosCumplen :: (Int -> Bool) -> [Int] -> Int'', que dado un predicado //p// y una lista de enteros //xs//, cuenta cuántos elementos de la lista cumplen con //p//. |
* Definir la función //sumaPares//, //sumaPares :: [Int] -> Int//, que suma sólo los elementos pares de una lista. | * Definir la función //sumaPares//, //sumaPares :: [Int] -> Int//, que suma sólo los elementos pares de una lista. |
* Definir la función ''estudiantesMayores35 :: [(String,Int,Int,Int)] -> Int'', que dada una lista de cuatro-uplas //(String,Int,Int,Int)// que se corresponden con //(Nombre,Año-Nacimiento,Año-Inicio-Estudios,Año-Fin-Estudios)//, devuelve la cantidad de estudiantes que fueron mayores de 35 años en algún momento en el transcurso de sus estudios. | * Definir la función ''estudiantesMayores35 :: [(String,Int,Int,Int)] -> Int'', que dada una lista de cuatro-uplas //(String,Int,Int,Int)// que se corresponden con //(Nombre,Año-Nacimiento,Año-Inicio-Estudios,Año-Fin-Estudios)//, devuelve la cantidad de estudiantes que fueron mayores de 35 años en algún momento en el transcurso de sus estudios. |