From 0b05b30661eb9e5c60ded740f79603bbb0d46a19 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Mon, 30 Sep 2013 05:41:44 +0400 Subject: Implement union function --- src/Data/BEncode/BDict.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Data/BEncode/BDict.hs b/src/Data/BEncode/BDict.hs index 925027b..8ef6d20 100644 --- a/src/Data/BEncode/BDict.hs +++ b/src/Data/BEncode/BDict.hs @@ -89,7 +89,11 @@ lookup x = go {-# INLINE lookup #-} union :: BDictMap a -> BDictMap a -> BDictMap a -union = undefined +union Nil xs = xs +union xs Nil = xs +union bd @ (Cons k v xs) bd' @ (Cons k' v' xs') + | k < k' = Cons k v (union xs bd') + | otherwise = Cons k' v' (union bd xs') map :: (a -> b) -> BDictMap a -> BDictMap b map f = go -- cgit v1.2.3