summaryrefslogtreecommitdiff
path: root/lec02
diff options
context:
space:
mode:
authorEdoardo La Greca2025-07-01 17:32:07 +0200
committerEdoardo La Greca2025-07-01 17:32:07 +0200
commit70dd63fcd0d9e04eae9fafdc9dec7548c06c7e16 (patch)
tree4e7765b9631a45c2706d56ca14e795dd240505f1 /lec02
parente59ec616694ee9ce40d7e5f882311f43c6e456a9 (diff)
add fifth exercise of lecture 2
Diffstat (limited to 'lec02')
-rw-r--r--lec02/LogAnalysis.hs17
1 files changed, 17 insertions, 0 deletions
diff --git a/lec02/LogAnalysis.hs b/lec02/LogAnalysis.hs
index f71410a..6d79ca6 100644
--- a/lec02/LogAnalysis.hs
+++ b/lec02/LogAnalysis.hs
@@ -56,3 +56,20 @@ inOrder :: MessageTree -> [LogMessage]
inOrder Leaf = []
inOrder (Node tl m tr) = inOrder tl ++ [m] ++ inOrder tr
+-- Exercise 5
+
+logText :: LogMessage -> String
+logText (Unknown _) = ""
+logText (LogMessage _ _ text) = text
+
+isRelevant :: LogMessage -> Bool
+isRelevant (Unknown _) = False
+isRelevant (LogMessage (Error s) _ _)
+ | s >= 50 = True
+ | otherwise = False
+isRelevant (LogMessage _ _ _) = False
+
+whatWentWrong :: [LogMessage] -> [String]
+whatWentWrong [] = []
+whatWentWrong ((Unknown _):ms) = whatWentWrong ms
+whatWentWrong ms = map logText (filter isRelevant ((inOrder . build) ms))