Matrice

Matrice

Medio

Istruzioni

Data una stringa che rappresenta una matrice di numeri, restituisci le righe e le colonne di quella matrice.

Quindi, data una stringa con caratteri di nuova riga incorporati come questa:

9 8 7
5 3 2
6 6 7

che rappresenta questa matrice:

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

il codice dovrebbe essere in grado di produrre:

  • Un array delle righe, leggendo ogni riga da sinistra a destra mentre ci si sposta dall'alto verso il basso tra le righe,
  • Un array delle colonne, leggendo ogni colonna dall'alto verso il basso mentre ci si sposta da sinistra a destra.

Le righe della nostra matrice di esempio:

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

E le sue colonne:

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

Suggerimenti

Per completare questo esercizio, devi creare il tipo di dato Matrix, con le istanze Eq e Show, e implementare le seguenti funzioni:

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

Troverai già una dichiarazione di dati fittizia e le firme di tipo, ma sta a te definire le funzioni e creare un tipo di dato, un newtype o un sinonimo di tipo che abbia un senso.

Non è richiesta alcuna validazione dell'input. Lascia che fallisca se la matrice non è rettangolare, se si incontrano caratteri non validi, ecc.

shape è (rows, cols)

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Haskell Exercism

Vuoi iniziare Matrice?

Iscriviti a Exercism per imparare e padroneggiare Haskell con 107 esercizi e il mentoring di persone reali, tutto gratis.