Gegeben ist ein String, der eine Matrix aus Zahlen darstellt. Gib die Zeilen und Spalten dieser Matrix zurück.
Für einen String mit eingebetteten Zeilenumbrüchen wie diesem:
9 8 7
5 3 2
6 6 7
der diese Matrix darstellt:
1 2 3
|---------
1 | 9 8 7
2 | 5 3 2
3 | 6 6 7
sollte dein Code Folgendes ausgeben können:
Die Zeilen für unsere Beispielmatrix:
Und ihre Spalten:
Um diese Übung abzuschließen, musst du den Datentyp Matrix mit Eq- und Show-Instanzen erstellen und die folgenden Funktionen implementieren:
colscolumnflattenfromListfromStringreshaperowrowsshapetransposeEine Dummy-Datendeklaration und die Typsignaturen findest du bereits vor, aber es liegt an dir, die Funktionen zu definieren und einen sinnvollen Datentyp, ein newtype oder ein Typsynonym zu erstellen.
Die Eingabe muss nicht validiert werden. Lass es fehlschlagen, wenn die Matrix nicht rechteckig ist, ungültige Zeichen vorkommen usw.
shape ist (rows, cols)
Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.