Add initial UE3 A.1
This commit is contained in:
parent
1036c68e21
commit
953219e8fc
@ -1,7 +1,7 @@
|
|||||||
> module Angabe3 where
|
> module Angabe3 where
|
||||||
|
|
||||||
1. Vervollstaendigen Sie gemaess Angabentext!
|
1. Vervollstaendigen Sie gemaess Angabentext!
|
||||||
2. Vervollständigen Sie auch die vorgegebenen Kommentaranfänge!
|
2. Vervollst<EFBFBD>ndigen Sie auch die vorgegebenen Kommentaranf<6E>nge!
|
||||||
3. Loeschen Sie keine Deklarationen aus diesem Rahmenprogramm, auch nicht die Modulanweisug!
|
3. Loeschen Sie keine Deklarationen aus diesem Rahmenprogramm, auch nicht die Modulanweisug!
|
||||||
4. Achten Sie darauf, dass `Gruppe' Leserechte fuer Ihre Abgabedatei hat!
|
4. Achten Sie darauf, dass `Gruppe' Leserechte fuer Ihre Abgabedatei hat!
|
||||||
|
|
||||||
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
Matrizen konzeptuell als Listen von Zeilen dargestellt:
|
Matrizen konzeptuell als Listen von Zeilen dargestellt:
|
||||||
|
|
||||||
> newtype Matrix = M [Zeile]
|
> newtype Matrix = M [Zeile] deriving (Eq)
|
||||||
|
|
||||||
> fehlerwert = M [] :: Matrix
|
> fehlerwert = M [] :: Matrix
|
||||||
|
|
||||||
@ -20,41 +20,44 @@ Matrizen konzeptuell als Listen von Zeilen dargestellt:
|
|||||||
Aufgabe A.1
|
Aufgabe A.1
|
||||||
|
|
||||||
> instance Show Matrix where
|
> instance Show Matrix where
|
||||||
> ...
|
> show m = matrixToString m "("
|
||||||
|
|
||||||
Knapp, aber gut nachvollziebar geht die Instanzdeklaration fuer Show folgendermassen vor:
|
|
||||||
|
|
||||||
|
Solution:
|
||||||
|
* if the parameter matrix is an empty matrix, return "()"
|
||||||
|
* if the current row of the matrix is not empty, but the rest of the matrix is, then add the current row and close the string with ")"
|
||||||
|
* otherwise, add the current row to the result and call the function recursively with the rest of the matrix
|
||||||
|
|
||||||
|
> matrixToString :: Matrix -> String -> String
|
||||||
|
> matrixToString matrix res
|
||||||
|
> | matrix == fehlerwert = "()"
|
||||||
|
> | length m /= 0 && null ms = res ++ show m ++ ")"
|
||||||
|
> | otherwise = matrixToString restMatrix (res ++ show m ++ " ")
|
||||||
|
> where
|
||||||
|
> (M (m:ms)) = matrix
|
||||||
|
> restMatrix = (M ms)
|
||||||
|
|
||||||
Aufgabe A.2
|
Aufgabe A.2
|
||||||
|
|
||||||
> matrixtyp :: Matrix -> Matrixtyp
|
|
||||||
> ...
|
|
||||||
|
|
||||||
Knapp, aber gut nachvollziehbar geht matrixtyp folgendermassen vor:
|
Knapp, aber gut nachvollziehbar geht matrixtyp folgendermassen vor:
|
||||||
...
|
...
|
||||||
|
|
||||||
|
matrixtyp :: Matrix -> Matrixtyp
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
Aufgabe A.3
|
Aufgabe A.3
|
||||||
|
|
||||||
> instance Eq Matrix where
|
|
||||||
> ...
|
|
||||||
|
|
||||||
Knapp, aber gut nachvollziebar geht die Instanzdeklaration fuer Eq folgendermassen vor:
|
Knapp, aber gut nachvollziebar geht die Instanzdeklaration fuer Eq folgendermassen vor:
|
||||||
...
|
...
|
||||||
|
|
||||||
|
instance Eq Matrix where
|
||||||
|
...
|
||||||
|
|
||||||
Aufgabe A.4
|
Aufgabe A.4
|
||||||
|
|
||||||
> instance Num Matrix where
|
|
||||||
> ...
|
|
||||||
|
|
||||||
Knapp, aber gut nachvollziebar geht die Instanzdeklaration fuer Num folgendermassen vor:
|
Knapp, aber gut nachvollziebar geht die Instanzdeklaration fuer Num folgendermassen vor:
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
|
instance Num Matrix where
|
||||||
|
...
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user