Matrice

Matrice

Moyen

Instructions

Étant donné une string représentant une matrice de nombres, renvoie les lignes et les colonnes de cette matrice.

Ainsi, étant donné une string contenant des retours à la ligne, comme celle-ci :

9 8 7
5 3 2
6 6 7

qui représente cette matrice :

    1  2  3
  |---------
1 | 9  8  7
2 | 5  3  2
3 | 6  6  7

ton code doit pouvoir produire :

  • Un tableau des lignes, en lisant chaque ligne de gauche à droite tout en descendant de haut en bas dans les lignes,
  • Un tableau des colonnes, en lisant chaque colonne de haut en bas tout en allant de gauche à droite.

Les lignes de notre matrice d'exemple :

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

Et ses colonnes :

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

Astuces

Pour venir à bout de cet exercice, tu dois créer le type de données Matrix, avec les instances Eq et Show, et implémenter les fonctions suivantes :

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

Tu trouveras une déclaration de données factice et les signatures de type déjà en place, mais c'est à toi de définir les fonctions et de créer un type de données, un newtype ou un synonyme de type qui a du sens.

Aucune validation de l'entrée n'est requise. Laisse échouer si la matrice n'est pas rectangulaire, si des caractères invalides sont rencontrés, etc.

shape est (rows, cols)

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Haskell Exercism

Prêt à commencer Matrice ?

Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.