summaryrefslogtreecommitdiff
path: root/lec02/LogAnalysis.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lec02/LogAnalysis.hs')
-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
+