Matriz girada 180 grados
Definir la función
matrizGirada180 :: Matrix a -> Matrix a
tal que (matrizGirada180 p) es la matriz obtenida girando 180 grados la matriz p. Por ejemplo,
λ> fromList 4 3 [1..] ( 1 2 3 ) ( 4 5 6 ) ( 7 8 9 ) ( 10 11 12 ) λ> matrizGirada180 (fromList 4 3 [1..]) ( 12 11 10 ) ( 9 8 7 ) ( 6 5 4 ) ( 3 2 1 ) λ> fromList 3 4 [1..] ( 1 2 3 4 ) ( 5 6 7 8 ) ( 9 10 11 12 ) λ> matrizGirada180 (fromList 3 4 [1..]) ( 12 11 10 9 ) ( 8 7 6 5 ) ( 4 3 2 1 )
Soluciones
import Data.Matrix (Matrix, (!), matrix, nrows, ncols) matrizGirada180 :: Matrix a -> Matrix a matrizGirada180 p = matrix m n f where m = nrows p n = ncols p f (i,j) = p!(m-i+1,n-j+1)