I1M2013: Ejercicios de definiciones por composición de funciones sobre listas
En la segunda parte de la clase de hoy del curso de Informática de 1º del Grado en Matemáticas hemos comentado las soluciones de los primeros 9 ejercicios 2ª relación sobre definiciones por composición de funciones sobre listas.
Los ejercicios y su solución se muestran a continuación
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
-- --------------------------------------------------------------------- -- Ejercicio 1. Definir la función rota1 tal que (rota1 xs) es la lista -- obtenida poniendo el primer elemento de xs al final de la lista. Por -- ejemplo, -- rota1 [3,2,5,7] == [2,5,7,3] -- --------------------------------------------------------------------- rota1 xs = tail xs ++ [head xs] -- --------------------------------------------------------------------- -- Ejercicio 2. Definir la función rota tal que (rota n xs) es la lista -- obtenida poniendo los n primeros elementos de xs al final de la -- lista. Por ejemplo, -- rota 1 [3,2,5,7] == [2,5,7,3] -- rota 2 [3,2,5,7] == [5,7,3,2] -- rota 3 [3,2,5,7] == [7,3,2,5] -- --------------------------------------------------------------------- rota n xs = drop n xs ++ take n xs -- --------------------------------------------------------------------- -- Ejercicio 3. Definir la función rango tal que (rango xs) es la -- lista formada por el menor y mayor elemento de xs. -- rango [3,2,7,5] == [2,7] -- Indicación: Se pueden usar minimum y maximum. -- --------------------------------------------------------------------- rango xs = [minimum xs, maximum xs] -- --------------------------------------------------------------------- -- Ejercicio 4. Definir la función palindromo tal que (palindromo xs) se -- verifica si xs es un palíndromo; es decir, es lo mismo leer xs de -- izquierda a derecha que de derecha a izquierda. Por ejemplo, -- palindromo [3,2,5,2,3] == True -- palindromo [3,2,5,6,2,3] == False -- --------------------------------------------------------------------- palindromo xs = xs == reverse xs -- --------------------------------------------------------------------- -- Ejercicio 5. Definir la función interior tal que (interior xs) es la -- lista obtenida eliminando los extremos de la lista |. Por ejemplo, -- interior [2,5,3,7,3] == [5,3,7] -- interior [2..7] == [3,4,5,6] -- --------------------------------------------------------------------- interior xs = tail (init xs) -- --------------------------------------------------------------------- -- Ejercicio 6. Definir la función finales tal que (finales n xs) es la -- lista formada por los n finales elementos de xs. Por ejemplo, -- finales 3 [2,5,4,7,9,6] == [7,9,6] -- --------------------------------------------------------------------- finales n xs = drop (length xs - n) xs -- --------------------------------------------------------------------- -- Ejercicio 7. Definir la función segmento tal que (segmento m n xs) es -- la lista de los elementos de xs comprendidos entre las posiciones m y -- n. Por ejemplo, -- segmento 3 4 [3,4,1,2,7,9,0] == [1,2] -- segmento 3 5 [3,4,1,2,7,9,0] == [1,2,7] -- segmento 5 3 [3,4,1,2,7,9,0] == [] -- --------------------------------------------------------------------- segmento m n xs = drop (m-1) (take n xs) -- --------------------------------------------------------------------- -- Ejercicio 8. Definir la función extremos tal que (extremos n xs) es -- la lista formada por los n primeros elementos de xs y los n finales -- elementos de xs. Por ejemplo, -- extremos 3 [2,6,7,1,2,4,5,8,9,2,3] == [2,6,7,9,2,3] -- --------------------------------------------------------------------- extremos n xs = take n xs ++ drop (length xs - n) xs |