From 70dd63fcd0d9e04eae9fafdc9dec7548c06c7e16 Mon Sep 17 00:00:00 2001 From: Edoardo La Greca Date: Tue, 1 Jul 2025 17:32:07 +0200 Subject: add fifth exercise of lecture 2 --- lec02/LogAnalysis.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lec02/LogAnalysis.hs') 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)) -- cgit v1.2.3