Copyright | (c) 2018-2023 Kowainik |
---|---|
License | MIT |
Maintainer | Kowainik <xrom.xkov@gmail.com> |
Stability | Stable |
Portability | Portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Relude.Extra.Map
Contents
Synopsis
- class StaticMap t where
- class StaticMap t => DynamicMap t where
- (!?) :: StaticMap t => t -> Key t -> Maybe (Val t)
- notMember :: StaticMap t => Key t -> t -> Bool
- lookupDefault :: StaticMap t => Val t -> Key t -> t -> Val t
- toPairs :: (IsList t, Item t ~ (a, b)) => t -> [(a, b)]
- keys :: (IsList t, Item t ~ (a, b)) => t -> [a]
- elems :: (IsList t, Item t ~ (a, b)) => t -> [b]
Documentation
Read-only map or set. Contains polymorphic functions which work for both sets and maps.
Since: 0.1.0
Instances
StaticMap IntSet # | Since: 0.1.0 | ||||||||
Defined in Relude.Extra.Map Associated Types
| |||||||||
StaticMap (IntMap v) # | Since: 0.1.0 | ||||||||
Defined in Relude.Extra.Map Associated Types
| |||||||||
Ord a => StaticMap (Set a) # | Since: 0.1.0 | ||||||||
Defined in Relude.Extra.Map Associated Types
| |||||||||
Hashable a => StaticMap (HashSet a) # | Since: 0.1.0 | ||||||||
Defined in Relude.Extra.Map Associated Types
| |||||||||
Ord k => StaticMap (Map k v) # | Since: 0.1.0 | ||||||||
Defined in Relude.Extra.Map Associated Types
| |||||||||
Hashable k => StaticMap (HashMap k v) # | Since: 0.1.0 | ||||||||
Defined in Relude.Extra.Map Associated Types
|
class StaticMap t => DynamicMap t where #
Modifiable Map.
Since: 0.1.0
Methods
insert :: Key t -> Val t -> t -> t #
insertWith :: (Val t -> Val t -> Val t) -> Key t -> Val t -> t -> t #
alter :: (Maybe (Val t) -> Maybe (Val t)) -> Key t -> t -> t #
Instances
DynamicMap (IntMap v) # | Since: 0.1.0 |
Defined in Relude.Extra.Map Methods insert :: Key (IntMap v) -> Val (IntMap v) -> IntMap v -> IntMap v # insertWith :: (Val (IntMap v) -> Val (IntMap v) -> Val (IntMap v)) -> Key (IntMap v) -> Val (IntMap v) -> IntMap v -> IntMap v # delete :: Key (IntMap v) -> IntMap v -> IntMap v # alter :: (Maybe (Val (IntMap v)) -> Maybe (Val (IntMap v))) -> Key (IntMap v) -> IntMap v -> IntMap v # | |
Ord k => DynamicMap (Map k v) # | Since: 0.1.0 |
Defined in Relude.Extra.Map Methods insert :: Key (Map k v) -> Val (Map k v) -> Map k v -> Map k v # insertWith :: (Val (Map k v) -> Val (Map k v) -> Val (Map k v)) -> Key (Map k v) -> Val (Map k v) -> Map k v -> Map k v # delete :: Key (Map k v) -> Map k v -> Map k v # alter :: (Maybe (Val (Map k v)) -> Maybe (Val (Map k v))) -> Key (Map k v) -> Map k v -> Map k v # | |
Hashable k => DynamicMap (HashMap k v) # | Since: 0.1.0 |
Defined in Relude.Extra.Map Methods insert :: Key (HashMap k v) -> Val (HashMap k v) -> HashMap k v -> HashMap k v # insertWith :: (Val (HashMap k v) -> Val (HashMap k v) -> Val (HashMap k v)) -> Key (HashMap k v) -> Val (HashMap k v) -> HashMap k v -> HashMap k v # delete :: Key (HashMap k v) -> HashMap k v -> HashMap k v # alter :: (Maybe (Val (HashMap k v)) -> Maybe (Val (HashMap k v))) -> Key (HashMap k v) -> HashMap k v -> HashMap k v # |
(!?) :: StaticMap t => t -> Key t -> Maybe (Val t) infixl 9 #
Operator version of lookup
function.
>>>
let myHashMap = HashMap.fromList [('a', "xxx"), ('b', "yyy")]
>>>
myHashMap !? 'b'
Just "yyy"
>>>
myHashMap !? 'd'
Nothing
Since: 0.1.0
notMember :: StaticMap t => Key t -> t -> Bool #
Inverse of member
function.
>>>
let myHashMap = HashMap.fromList [('a', "xxx"), ('b', "yyy")]
>>>
notMember 'b' myHashMap
False
>>>
notMember 'c' myHashMap
True
Since: 0.1.0
Arguments
:: StaticMap t | |
=> Val t | Default value to return. |
-> Key t | Key to search |
-> t | Container to search |
-> Val t |
Return the value to which the specified key is mapped, or the default value if this map contains no mapping for the key.
>>>
let myHashMap = HashMap.fromList [('a', "xxx"), ('b', "yyy")]
>>>
lookupDefault "zzz" 'b' myHashMap
"yyy"
>>>
lookupDefault "zzz" 'c' myHashMap
"zzz"
Since: 0.1.0
To pairs
toPairs :: (IsList t, Item t ~ (a, b)) => t -> [(a, b)] #
Converts the structure to the list of the key-value pairs.
>>>
toPairs (HashMap.fromList [('a', "xxx"), ('b', "yyy")])
[('a',"xxx"),('b',"yyy")]
Since: 0.1.0