diff options
-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 + |