Intercambio de la primera y última columna de una matriz
Las matrices se pueden representar mediante listas de listas. Por ejemplo, la matriz
8 9 7 6 4 7 6 5 3 2 1 8
se puede representar por la lista
[[8,9,7,6],[4,7,6,5],[3,2,1,8]]
Definir la función
intercambia :: [[a]] -> [[a]]
tal que (intercambia xss) es la matriz obtenida intercambiando la primera y la última columna de xss. Por ejemplo,
λ> 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
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]