Parcial de Taller de Álgebra 2015
En las clases usamos Haskell, por lo que el parcial se basaba en Haskell. Para aprobar había que tener al menos 2 ejercicios completamente bien resueltos. El ejercicio 4 era un bonus track, más difícil que los otros.
Ejercicio 1
Programe la función esMultiploDe :: Integer -> Integer -> Bool que devuelve verdadero si el segundo parámetro es múltiplo del primero. Por ejemplo:
- esMultiploDe 3 33 devuelve True
- esMultiploDe 17 23 devuelve False
Aclaración: para este ejercicio no está permitido utilizar div, mod ,/ ,* ni equivalentes..
Ejercicio 2
Programe la función intercalar :: [a] -> [a] -> [a] que recibe dos listas de igual longitud y devuelve una lista del doble de esa longitud, con los elementos de ambas listas intercalados. Por ejemplo:
- intercalar [107,33,45] [28,42,37] devuelve [107,28,33,42,45,37]
Ejercicio 3
Programe la función quitarTodosLos :: Integer -> [Integer] -> [Integer] de modo tal que quitarTodosLos x xs devuelva la lista xs pero sin ninguna aparición del elemento x. Por ejemplo:
- quitarTodosLos 8 [8,5,3,9,8,2,8,7] devuelve [5,3,9,2,7]
Ejercicio 4
Programe la función comprimir :: [Integer] -> [(Integer,Integer)] que devuelva una lista que contenga una tupla (elemento, cantVeces) por cada tira de elementos iguales adyacentes. Por ejemplo:
- comprimir [7,7,4,4,4,4,4,3,3,3] devuelve [(7,2),(4,5),(3,3)]
Sugerencia: empiece reemplazando cada elemento e por una tupla (e,1).