Map
A Map holds key-value pairs. Any value may be used as a key or value. Operations on a Map mutate the internal state, so it never needs to be re-assigned.
Edit on GitHubAn immutable map implementation is available in the Immutable submodule.
Added in 0.2.0
No other changes yet.
from "map" include Map
Type declarations included in the Map module.
type Map<k, v>
record InternalMapStats {
currentSize: Number,
bucketCount: Number,
}
Represents the internal state of a map.
Functions and constants included in the Map module.
Added in 0.2.0
| version | changes |
|---|---|
0.6.0 | Merged with `makeSized`; modified signature to accept size |
make : (?size: Number) => Map<a, b>
Creates a new empty map with an initial storage of the given size. As values are added or removed, the internal storage may grow or shrink. Generally, you won’t need to care about the storage size of your map and can use the default size.
Parameters:
| param | type | description |
|---|---|---|
?size | Number | The initial storage size of the map |
?size: The initial storage size of the mapReturns:
| type | description |
|---|---|
Map<a, b> | An empty map with the given initial storage size |
Map<a, b>: An empty map with the given initial storage sizeAdded in 0.2.0
No other changes yet.
set : (key: a, value: b, map: Map<a, b>) => Void
Adds a new key-value pair to the map. If the key already exists in the map, the value is replaced.
Parameters:
| param | type | description |
|---|---|---|
key | a | The unique key in the map |
value | b | The value to store |
map | Map<a, b> | The map to modify |
key: The unique key in the mapvalue: The value to storemap: The map to modifyAdded in 0.2.0
No other changes yet.
get : (key: a, map: Map<a, b>) => Option<b>
Retrieves the value for the given key.
Parameters:
| param | type | description |
|---|---|---|
key | a | The key to access |
map | Map<a, b> | The map to access |
key: The key to accessmap: The map to accessReturns:
| type | description |
|---|---|
Option<b> | Some(value) if the key exists in the map or None otherwise |
Option<b>: Some(value) if the key exists in the map or None otherwiseAdded in 0.2.0
No other changes yet.
contains : (key: a, map: Map<a, b>) => Bool
Determines if the map contains the given key. In such a case, it will always contain a value for the given key.
Parameters:
| param | type | description |
|---|---|---|
key | a | The key to search for |
map | Map<a, b> | The map to search |
key: The key to search formap: The map to searchReturns:
| type | description |
|---|---|
Bool | true if the map contains the given key or false otherwise |
Bool: true if the map contains the given key or false otherwiseAdded in 0.2.0
No other changes yet.
remove : (key: a, map: Map<a, b>) => Void
Removes the given key from the map, which also removes the value. If the key pair doesn’t exist, nothing happens.
Parameters:
| param | type | description |
|---|---|---|
key | a | The key to remove |
map | Map<a, b> | The map to update |
key: The key to removemap: The map to updateAdded in 0.3.0
No other changes yet.
update : (key: a, fn: (Option<b> => Option<b>), map: Map<a, b>) => Void
Updates a value in the map by calling an updater function that receives the previously stored value as an Option and returns the new value to be stored as an Option. If the key didn’t exist previously, the value will be None. If None is returned from the updater function, the key-value pair is removed.
Parameters:
| param | type | description |
|---|---|---|
key | a | The unique key in the map |
fn | Option<b> => Option<b> | The updater function |
map | Map<a, b> | The map to modify |
key: The unique key in the mapfn: The updater functionmap: The map to modifyAdded in 0.2.0
No other changes yet.
size : (map: Map<a, b>) => Number
Provides the count of key-value pairs stored within the map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to inspect |
map: The map to inspectReturns:
| type | description |
|---|---|
Number | The count of key-value pairs in the map |
Number: The count of key-value pairs in the mapAdded in 0.2.0
No other changes yet.
isEmpty : (map: Map<a, b>) => Bool
Determines if the map contains no key-value pairs.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to inspect |
map: The map to inspectReturns:
| type | description |
|---|---|
Bool | true if the given map is empty or false otherwise |
Bool: true if the given map is empty or false otherwiseAdded in 0.2.0
No other changes yet.
clear : (map: Map<a, b>) => Void
Resets the map by removing all key-value pairs.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to reset |
map: The map to resetAdded in 0.2.0
| version | changes |
|---|---|
0.5.0 | Ensured the iterator function return type is always `Void` |
forEach : (fn: ((a, b) => Void), map: Map<a, b>) => Void
Iterates the map, calling an iterator function with each key and value.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b) => Void | The iterator function to call with each key and value |
map | Map<a, b> | The map to iterate |
fn: The iterator function to call with each key and valuemap: The map to iterateAdded in 0.2.0
No other changes yet.
reduce : (fn: ((a, b, c) => a), init: a, map: Map<b, c>) => a
Combines all key-value pairs of a map using a reducer function.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b, c) => a | The reducer function to call on each key and value, where the value returned will be the next accumulator value |
init | a | The initial value to use for the accumulator on the first iteration |
map | Map<b, c> | The map to iterate |
fn: The reducer function to call on each key and value, where the value returned will be the next accumulator valueinit: The initial value to use for the accumulator on the first iterationmap: The map to iterateReturns:
| type | description |
|---|---|
a | The final accumulator returned from fn |
a: The final accumulator returned from fnAdded in 0.2.0
No other changes yet.
keys : (map: Map<a, b>) => List<a>
Enumerates all keys in the given map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to enumerate |
map: The map to enumerateReturns:
| type | description |
|---|---|
List<a> | A list containing all keys from the given map |
List<a>: A list containing all keys from the given mapAdded in 0.2.0
No other changes yet.
values : (map: Map<a, b>) => List<b>
Enumerates all values in the given map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to enumerate |
map: The map to enumerateReturns:
| type | description |
|---|---|
List<b> | A list containing all values from the given map |
List<b>: A list containing all values from the given mapAdded in 0.2.0
No other changes yet.
toList : (map: Map<a, b>) => List<(a, b)>
Enumerates all key-value pairs in the given map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to enumerate |
map: The map to enumerateReturns:
| type | description |
|---|---|
List<(a, b)> | A list containing all key-value pairs from the given map |
List<(a, b)>: A list containing all key-value pairs from the given mapAdded in 0.2.0
No other changes yet.
fromList : (list: List<(a, b)>) => Map<a, b>
Creates a map from a list.
Parameters:
| param | type | description |
|---|---|---|
list | List<(a, b)> | The list to convert |
list: The list to convertReturns:
| type | description |
|---|---|
Map<a, b> | A map containing all key-value pairs from the list |
Map<a, b>: A map containing all key-value pairs from the listAdded in 0.2.0
No other changes yet.
toArray : (map: Map<a, b>) => Array<(a, b)>
Converts a map into an array of its key-value pairs.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to convert |
map: The map to convertReturns:
| type | description |
|---|---|
Array<(a, b)> | An array containing all key-value pairs from the given map |
Array<(a, b)>: An array containing all key-value pairs from the given mapAdded in 0.2.0
No other changes yet.
fromArray : (array: Array<(a, b)>) => Map<a, b>
Creates a map from an array.
Parameters:
| param | type | description |
|---|---|---|
array | Array<(a, b)> | The array to convert |
array: The array to convertReturns:
| type | description |
|---|---|
Map<a, b> | A map containing all key-value pairs from the array |
Map<a, b>: A map containing all key-value pairs from the arrayAdded in 0.2.0
No other changes yet.
filter : (fn: ((a, b) => Bool), map: Map<a, b>) => Void
Removes key-value pairs from a map where a predicate function returns false.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b) => Bool | The predicate function to indicate which key-value pairs to remove from the map, where returning false indicates the key-value pair should be removed |
map | Map<a, b> | The map to iterate |
fn: The predicate function to indicate which key-value pairs to remove from the map, where returning false indicates the key-value pair should be removedmap: The map to iterateAdded in 0.2.0
No other changes yet.
reject : (fn: ((a, b) => Bool), map: Map<a, b>) => Void
Removes key-value pairs from a map where a predicate function returns true.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b) => Bool | The predicate function to indicate which key-value pairs to remove from the map, where returning true indicates the key-value pair should be removed |
map | Map<a, b> | The map to iterate |
fn: The predicate function to indicate which key-value pairs to remove from the map, where returning true indicates the key-value pair should be removedmap: The map to iterateAdded in 0.2.0
| version | changes |
|---|---|
0.6.0 | Return `InternalMapStats` record instead of a tuple |
getInternalStats : (map: Map<a, b>) => InternalMapStats
Provides data representing the internal state state of the map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to inspect |
map: The map to inspectReturns:
| type | description |
|---|---|
InternalMapStats | The internal state of the map |
InternalMapStats: The internal state of the mapAn immutable map implementation.
Added in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
Type declarations included in the Map.Immutable module.
type Map<k, v>
Functions and constants included in the Map.Immutable module.
Added in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
empty : Map<a, b>
An empty map
Added in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
size : (map: Map<a, b>) => Number
Provides the count of key-value pairs stored within the map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to inspect |
map: The map to inspectReturns:
| type | description |
|---|---|
Number | The count of key-value pairs in the map |
Number: The count of key-value pairs in the mapAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
isEmpty : (map: Map<a, b>) => Bool
Determines if the map contains no key-value pairs.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to inspect |
map: The map to inspectReturns:
| type | description |
|---|---|
Bool | true if the given map is empty or false otherwise |
Bool: true if the given map is empty or false otherwiseAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
set : (key: a, value: b, map: Map<a, b>) => Map<a, b>
Produces a new map containing a new key-value pair. If the key already exists in the map, the value is replaced.
Parameters:
| param | type | description |
|---|---|---|
key | a | The unique key in the map |
value | b | The value to store |
map | Map<a, b> | The base map |
key: The unique key in the mapvalue: The value to storemap: The base mapReturns:
| type | description |
|---|---|
Map<a, b> | A new map containing the new key-value pair |
Map<a, b>: A new map containing the new key-value pairAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
get : (key: a, map: Map<a, b>) => Option<b>
Retrieves the value for the given key.
Parameters:
| param | type | description |
|---|---|---|
key | a | The key to access |
map | Map<a, b> | The map to access |
key: The key to accessmap: The map to accessReturns:
| type | description |
|---|---|
Option<b> | Some(value) if the key exists in the map or None otherwise |
Option<b>: Some(value) if the key exists in the map or None otherwiseAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
contains : (key: a, map: Map<a, b>) => Bool
Determines if the map contains the given key. In such a case, it will always contain a value for the given key.
Parameters:
| param | type | description |
|---|---|---|
key | a | The key to search for |
map | Map<a, b> | The map to search |
key: The key to search formap: The map to searchReturns:
| type | description |
|---|---|
Bool | true if the map contains the given key or false otherwise |
Bool: true if the map contains the given key or false otherwiseAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
remove : (key: a, map: Map<a, b>) => Map<a, b>
Produces a new map without the key-value pair corresponding to the given key. If the key doesn’t exist in the map, the map will be returned unmodified.
Parameters:
| param | type | description |
|---|---|---|
key | a | The key to exclude |
map | Map<a, b> | The map to exclude from |
key: The key to excludemap: The map to exclude fromReturns:
| type | description |
|---|---|
Map<a, b> | A new map without the given key |
Map<a, b>: A new map without the given keyAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
update : (key: a, fn: (Option<b> => Option<b>), map: Map<a, b>) => Map<a, b>
Produces a new map by calling an updater function that receives the
previously stored value as an Option and returns the new value to be
stored as an Option. If the key didn’t exist previously, the value
will be None. If None is returned from the updater function, the
key-value pair is excluded.
Parameters:
| param | type | description |
|---|---|---|
key | a | The unique key in the map |
fn | Option<b> => Option<b> | The updater function |
map | Map<a, b> | The base map |
key: The unique key in the mapfn: The updater functionmap: The base mapReturns:
| type | description |
|---|---|
Map<a, b> | A new map with the value at the given key modified according to the function’s output |
Map<a, b>: A new map with the value at the given key modified according to the function’s outputAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
forEach : (fn: ((a, b) => Void), map: Map<a, b>) => Void
Iterates the map, calling an iterator function with each key and value.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b) => Void | The iterator function to call with each key and value |
map | Map<a, b> | The map to iterate |
fn: The iterator function to call with each key and valuemap: The map to iterateAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
reduce : (fn: ((a, b, c) => a), init: a, map: Map<b, c>) => a
Combines all key-value pairs of a map using a reducer function.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b, c) => a | The reducer function to call on each key and value, where the value returned will be the next accumulator value |
init | a | The initial value to use for the accumulator on the first iteration |
map | Map<b, c> | The map to iterate |
fn: The reducer function to call on each key and value, where the value returned will be the next accumulator valueinit: The initial value to use for the accumulator on the first iterationmap: The map to iterateReturns:
| type | description |
|---|---|
a | The final accumulator returned from fn |
a: The final accumulator returned from fnAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
keys : (map: Map<a, b>) => List<a>
Enumerates all keys in the given map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to enumerate |
map: The map to enumerateReturns:
| type | description |
|---|---|
List<a> | A list containing all keys from the given map |
List<a>: A list containing all keys from the given mapAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
values : (map: Map<a, b>) => List<b>
Enumerates all values in the given map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to enumerate |
map: The map to enumerateReturns:
| type | description |
|---|---|
List<b> | A list containing all values from the given map |
List<b>: A list containing all values from the given mapAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
filter : (fn: ((a, b) => Bool), map: Map<a, b>) => Map<a, b>
Produces a new map excluding the key-value pairs where a predicate function returns false.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b) => Bool | The predicate function to indicate which key-value pairs to exclude from the map, where returning false indicates the key-value pair should be excluded |
map | Map<a, b> | The map to iterate |
fn: The predicate function to indicate which key-value pairs to exclude from the map, where returning false indicates the key-value pair should be excludedmap: The map to iterateReturns:
| type | description |
|---|---|
Map<a, b> | A new map excluding the key-value pairs not fulfilling the predicate |
Map<a, b>: A new map excluding the key-value pairs not fulfilling the predicateAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
reject : (fn: ((a, b) => Bool), map: Map<a, b>) => Map<a, b>
Produces a new map excluding the key-value pairs where a predicate function returns true.
Parameters:
| param | type | description |
|---|---|---|
fn | (a, b) => Bool | The predicate function to indicate which key-value pairs to exclude from the map, where returning true indicates the key-value pair should be excluded |
map | Map<a, b> | The map to iterate |
fn: The predicate function to indicate which key-value pairs to exclude from the map, where returning true indicates the key-value pair should be excludedmap: The map to iterateReturns:
| type | description |
|---|---|
Map<a, b> | A new map excluding the key-value pairs fulfilling the predicate |
Map<a, b>: A new map excluding the key-value pairs fulfilling the predicateAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
fromList : (list: List<(a, b)>) => Map<a, b>
Creates a map from a list.
Parameters:
| param | type | description |
|---|---|---|
list | List<(a, b)> | The list to convert |
list: The list to convertReturns:
| type | description |
|---|---|
Map<a, b> | A map containing all key-value pairs from the list |
Map<a, b>: A map containing all key-value pairs from the listAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
toList : (map: Map<a, b>) => List<(a, b)>
Enumerates all key-value pairs in the given map.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to enumerate |
map: The map to enumerateReturns:
| type | description |
|---|---|
List<(a, b)> | A list containing all key-value pairs from the given map |
List<(a, b)>: A list containing all key-value pairs from the given mapAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
fromArray : (array: Array<(a, b)>) => Map<a, b>
Creates a map from an array.
Parameters:
| param | type | description |
|---|---|---|
array | Array<(a, b)> | The array to convert |
array: The array to convertReturns:
| type | description |
|---|---|
Map<a, b> | A map containing all key-value pairs from the array |
Map<a, b>: A map containing all key-value pairs from the arrayAdded in 0.6.0
| version | changes |
|---|---|
0.5.4 | Originally in `"immutablemap"` module |
toArray : (map: Map<a, b>) => Array<(a, b)>
Converts a map into an array of its key-value pairs.
Parameters:
| param | type | description |
|---|---|---|
map | Map<a, b> | The map to convert |
map: The map to convertReturns:
| type | description |
|---|---|
Array<(a, b)> | An array containing all key-value pairs from the given map |
Array<(a, b)>: An array containing all key-value pairs from the given map