diff options
author | Edoardo La Greca | 2025-07-01 12:38:54 +0200 |
---|---|---|
committer | Edoardo La Greca | 2025-07-01 14:25:26 +0200 |
commit | e96648c57008b64ccd041c7a76e9587b9fcab62d (patch) | |
tree | 80f7099cd42e99af95e4969e8ea3d6587b64bb4c | |
parent | 8ee84f2253a9311fb365d994012aa6de06ef6b92 (diff) |
add second exercise of lecture 2
-rw-r--r-- | lec02/LogAnalysis.hs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lec02/LogAnalysis.hs b/lec02/LogAnalysis.hs index fc4d3df..0c9e714 100644 --- a/lec02/LogAnalysis.hs +++ b/lec02/LogAnalysis.hs @@ -33,3 +33,14 @@ parseMessage s parse :: String -> [LogMessage] parse = map parseMessage . lines + +-- Exercise 2 + +insert :: LogMessage -> MessageTree -> MessageTree +insert (Unknown _) t = t +insert _ t@(Node _ (Unknown _) _) = t -- should never happen +insert m Leaf = Node Leaf m Leaf +insert m@(LogMessage _ newTime _) (Node tl (LogMessage _ time _) tr) + | newTime < time = insert m tl + | otherwise = insert m tr + |