From 71e13e48a044a606dcd9d2e4c22200b2fe8aa164 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Wed, 27 May 2009 21:50:02 +0100 Subject: [PATCH] Some cleanup of the PeerMap module This patch removes some unused functions and does some cleanup of the remaining ones. --- Ganeti/HTools/PeerMap.hs | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/Ganeti/HTools/PeerMap.hs b/Ganeti/HTools/PeerMap.hs index 0f9af484f..5bef2a56d 100644 --- a/Ganeti/HTools/PeerMap.hs +++ b/Ganeti/HTools/PeerMap.hs @@ -8,17 +8,15 @@ implementation should be easy in case it's needed. -} module Ganeti.HTools.PeerMap - ( - PeerMap, - Key, - Elem, - empty, - create, - accumArray, - Ganeti.HTools.PeerMap.find, - add, - remove, - maxElem + ( PeerMap + , Key + , Elem + , empty + , accumArray + , Ganeti.HTools.PeerMap.find + , add + , remove + , maxElem ) where import Data.Maybe (fromMaybe) @@ -32,12 +30,10 @@ type Key = Ndx type Elem = Int type PeerMap = [(Key, Elem)] +-- | Create a new empty map empty :: PeerMap empty = [] -create :: Key -> PeerMap -create _ = [] - -- | Our reverse-compare function pmCompare :: (Key, Elem) -> (Key, Elem) -> Ordering pmCompare a b = (compare `on` snd) b a @@ -64,7 +60,7 @@ find :: Key -> PeerMap -> Elem find k c = fromMaybe 0 $ lookup k c add :: Key -> Elem -> PeerMap -> PeerMap -add k v c = addWith (\_ n -> n) k v c +add k v c = addWith (flip const) k v c remove :: Key -> PeerMap -> PeerMap remove k c = case c of @@ -72,10 +68,7 @@ remove k c = case c of (x@(x', _)):xs -> if k == x' then xs else x:(remove k xs) -to_list :: PeerMap -> [Elem] -to_list c = snd $ unzip c - +-- | Find the maximum element. Since this is a sorted list, we just +-- get the first one maxElem :: PeerMap -> Elem -maxElem c = case c of - [] -> 0 - (_, v):_ -> v +maxElem c = if null c then 0 else snd . head $ c -- GitLab