Parcial de Taller de Álgebra 2015

De Cuba-Wiki

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).