diff options
author | Edoardo La Greca | 2025-07-01 17:32:07 +0200 |
---|---|---|
committer | Edoardo La Greca | 2025-07-01 17:32:07 +0200 |
commit | 70dd63fcd0d9e04eae9fafdc9dec7548c06c7e16 (patch) | |
tree | 4e7765b9631a45c2706d56ca14e795dd240505f1 /lec02 | |
parent | e59ec616694ee9ce40d7e5f882311f43c6e456a9 (diff) |
add fifth exercise of lecture 2
Diffstat (limited to 'lec02')
-rw-r--r-- | lec02/LogAnalysis.hs | 17 |
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)) |