Add UE6 A2 and A4 implementations

This commit is contained in:
Ivaylo Ivanov 2021-11-23 18:48:19 +01:00
parent 0b837f76cf
commit b5eef0023e

View File

@ -45,6 +45,7 @@ construct_row f numcol rc cc res
is_correct_matrix :: MatrixF -> Bool is_correct_matrix :: MatrixF -> Bool
is_correct_matrix m is_correct_matrix m
| height == 0 || width == 0 = False
| fst t == height && snd t == width = True | fst t == height && snd t == width = True
| otherwise = False | otherwise = False
where where
@ -75,17 +76,22 @@ matrix_to_string matrix res
matrixtyp :: MatrixF -> Maybe Matrixtyp matrixtyp :: MatrixF -> Maybe Matrixtyp
matrixtyp (Mf t f) matrixtyp (Mf t f)
| is_correct_matrix (Mf t f) == False = Nothing | not(is_correct_matrix (Mf t f)) = Nothing
| otherwise = (Just (0,0)) | otherwise = (Just (height, width))
where
mtx = construct_matrix (Mf t f) 1 []
height = length mtx
width = length (head mtx)
-- Aufgabe A.4 -- Aufgabe A.4
instance Eq MatrixF where instance Eq MatrixF where
(Mf t1 f1) == (Mf t2 f2) (Mf t1 f1) == (Mf t2 f2)
| is_correct_matrix (Mf t1 f1) == False || is_correct_matrix (Mf t2 f2) = error "Gleichheit undefiniert" | not(is_correct_matrix (Mf t1 f1)) || not(is_correct_matrix (Mf t2 f2)) = error "Gleichheit undefiniert"
| otherwise = | otherwise = show (Mf t1 f1) == show (Mf t2 f2)
if show (Mf t1 f1) == show (Mf t2 f2) then True (Mf t1 f1) /= (Mf t2 f2)
else False | not(is_correct_matrix (Mf t1 f1)) || not(is_correct_matrix (Mf t2 f2)) = error "Ungleichheit undefiniert"
| otherwise = show (Mf t1 f1) /= show (Mf t2 f2)
-- Aufgabe A.5 -- Aufgabe A.5