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:
Le righe della nostra matrice di esempio:
E le sue colonne:
Per completare questo esercizio, devi creare il tipo di dato Matrix, con le istanze Eq e Show, e implementare le seguenti funzioni:
colscolumnflattenfromListfromStringreshaperowrowsshapetransposeTroverai 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)
Iscriviti a Exercism per imparare e padroneggiare Haskell con 107 esercizi e il mentoring di persone reali, tutto gratis.