Matriz

Matriz

Intermedia

Instrucciones

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 este:

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 poder darte:

  • Un array con las filas, leyendo cada fila de izquierda a derecha mientras avanzas de arriba a abajo por las filas,
  • Un array con las columnas, leyendo cada columna de arriba a abajo mientras avanzas de izquierda a derecha.

Las filas de nuestra matriz de ejemplo:

  • 9, 8, 7
  • 5, 3, 2
  • 6, 6, 7

Y sus columnas:

  • 9, 5, 6
  • 8, 3, 6
  • 7, 2, 7

Pistas

Para completar este ejercicio, necesitas crear el tipo de dato Matrix, con instancias de Eq y Show, e implementar las siguientes funciones:

  • cols
  • column
  • flatten
  • fromList
  • fromString
  • reshape
  • row
  • rows
  • shape
  • transpose

Encontrarás una declaración de datos ficticia y las firmas de tipo ya en su lugar, pero depende de ti definir las funciones y crear un tipo de dato, un newtype o un sinónimo de tipo que tenga sentido.

No se requiere ninguna validación de los datos. Deja que falle si la matriz no es rectangular, si se encuentran caracteres inválidos, etc.

shape es (rows, cols)

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Matriz?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.