summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdoardo La Greca2025-07-01 12:38:54 +0200
committerEdoardo La Greca2025-07-01 14:25:26 +0200
commite96648c57008b64ccd041c7a76e9587b9fcab62d (patch)
tree80f7099cd42e99af95e4969e8ea3d6587b64bb4c
parent8ee84f2253a9311fb365d994012aa6de06ef6b92 (diff)
add second exercise of lecture 2
-rw-r--r--lec02/LogAnalysis.hs11
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
+