Dado un string que representa una matriz de números, devuelve las filas y las columnas de esa matriz.
Así, dado un string con saltos de línea incrustados como:
9 8 7
5 3 2
6 6 7
que representa esta matriz:
1 2 3
|---------
1 | 9 8 7
2 | 5 3 2
3 | 6 6 7
tu código debería ser capaz de producir:
Las filas de nuestra matriz de ejemplo:
Y sus columnas:
Para completar este ejercicio, tienes que crear el tipo de dato Matrix,
con las instancias Eq y Show, e implementar las siguientes funciones:
colscolumnflattenfromListfromStringreshaperowrowsshapetransposeEncontrarás una declaración de datos ficticia y las firmas de tipo ya puestas, pero depende de ti definir las funciones y crear un tipo de dato, un newtype o un sinónimo de tipo con sentido.
No es necesario validar la entrada. Deja que falle si la matriz no es rectangular, si se encuentran caracteres no válidos, etc.
shape es (rows, cols)
Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.