module Berekening where ovguMap = [('-',-100),('o',0),('v',1),('g',2),('u',3)] markMap = [(1,'v'),(2,'g'),(3,'u')] toMark ovgu = maybe (-100) id (lookup ovgu ovguMap) toOvgu mark = maybe 'o' id (lookup mark markMap) t1 = ['g','v','v'] t2 = ['g','v','g'] t3 = ['g','v','o'] t4 = ['u','o','o'] t5 = ['u','u','-'] t6 = ['v','v','o'] t7 = ['g','v','o'] t = [t1,t2,t3,t4,t5,t6,t7] test = map final t final ovgus = (\f -> if all (/='-') ovgus && ((<=1) . length . filter (=='o') $ ovgus) then f else 'o' ) . toOvgu . round . (\m -> if m < 1 then 0 else m) . (/(fromInteger . toInteger . length $ ovgus)) . fromInteger . foldr (+) 0 . map toMark $ ovgus