Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module ValuesBy where
- import Data.List
- data Map key value = Map[(key,value)]
- get :: Eq k => k -> Map k v -> Maybe v
- get k mapt @ (Map map') = let index = contains k mapt
- in if index >= 0 then (Just (snd (map' !! index)))
- else Nothing
- contains :: Eq k => k -> Map k v -> Int
- contains k (Map map') = getValue (elemIndex k (fst (unzip map')))
- getValue :: Num a => Maybe a -> a
- getValue (Just a) = a
- getValue Nothing = -1
- put :: Eq k => (k, v) -> Map k v -> Map k v
- put pair (Map map') = Map (put' pair map')
- put' :: Eq key => (key, value) -> [(key, value)] -> [(key, value)]
- put' pair @ (key, value) (x:xs)
- | length xs == 0 = [x,pair]
- | fst x == key = pair:xs
- | otherwise = x:(put' pair xs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement