Intercambio de la primera y última columna de una matriz
Las matrices se pueden representar mediante listas de listas. Por ejemplo, la matriz
1 2 3 |
8 9 7 6 4 7 6 5 3 2 1 8 |
se puede representar por la lista
1 |
[[8,9,7,6],[4,7,6,5],[3,2,1,8]] |
Definir la función
1 |
intercambia :: [[a]] -> [[a]] |
tal que (intercambia xss) es la matriz obtenida intercambiando la primera y la última columna de xss. Por ejemplo,
1 2 |
λ> intercambia [[8,9,7,6],[4,7,6,5],[3,2,1,8]] [[6,9,7,8],[5,7,6,4],[8,2,1,3]] |
Soluciones
1 2 3 4 5 6 7 8 9 |
intercambia :: [[a]] -> [[a]] intercambia = map intercambiaL -- (intercambiaL xs) es la lista obtenida intercambiando el primero y el -- último elemento de xs. Por ejemplo, -- intercambiaL [8,9,7,6] == [6,9,7,8] intercambiaL :: [a] -> [a] intercambiaL xs = last xs : tail (init xs) ++ [head xs] |
Pensamiento
«¡Que difícil es,
cuando todo baja
no bajar también!»Antonio Machado