ESC
No recent searches
Search by
Standard Library  /  Map

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 GitHub

An immutable map implementation is available in the Immutable submodule.

Added in 0.2.0 No other changes yet.
from "map" include Map

Types

Type declarations included in the Map module.

Map.Map

type Map<k, v>

Map.InternalMapStats

record InternalMapStats {
  currentSize: Number,
  bucketCount: Number,
}

Represents the internal state of a map.

Values

Functions and constants included in the Map module.

Map.make

Added in 0.2.0
versionchanges
0.6.0Merged 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:

?size: The initial storage size of the map

Returns:

Map<a, b>: An empty map with the given initial storage size

Map.set

Added 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:

key: The unique key in the map
value: The value to store
map: The map to modify

Map.get

Added 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:

key: The key to access
map: The map to access

Returns:

Option<b>: Some(value) if the key exists in the map or None otherwise

Map.contains

Added 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:

key: The key to search for
map: The map to search

Returns:

Bool: true if the map contains the given key or false otherwise

Map.remove

Added 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:

key: The key to remove
map: The map to update

Map.update

Added 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:

key: The unique key in the map
fn: The updater function
map: The map to modify

Map.size

Added 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:

map: The map to inspect

Returns:

Number: The count of key-value pairs in the map

Map.isEmpty

Added in 0.2.0 No other changes yet.
isEmpty : (map: Map<a, b>) => Bool

Determines if the map contains no key-value pairs.

Parameters:

map: The map to inspect

Returns:

Bool: true if the given map is empty or false otherwise

Map.clear

Added in 0.2.0 No other changes yet.
clear : (map: Map<a, b>) => Void

Resets the map by removing all key-value pairs.

Parameters:

map: The map to reset

Map.forEach

Added in 0.2.0
versionchanges
0.5.0Ensured 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:

fn: The iterator function to call with each key and value
map: The map to iterate

Map.reduce

Added 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:

fn: The reducer function to call on each key and value, where the value returned will be the next accumulator value
init: The initial value to use for the accumulator on the first iteration
map: The map to iterate

Returns:

a: The final accumulator returned from fn

Map.keys

Added in 0.2.0 No other changes yet.
keys : (map: Map<a, b>) => List<a>

Enumerates all keys in the given map.

Parameters:

map: The map to enumerate

Returns:

List<a>: A list containing all keys from the given map

Map.values

Added in 0.2.0 No other changes yet.
values : (map: Map<a, b>) => List<b>

Enumerates all values in the given map.

Parameters:

map: The map to enumerate

Returns:

List<b>: A list containing all values from the given map

Map.toList

Added 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:

map: The map to enumerate

Returns:

List<(a, b)>: A list containing all key-value pairs from the given map

Map.fromList

Added in 0.2.0 No other changes yet.
fromList : (list: List<(a, b)>) => Map<a, b>

Creates a map from a list.

Parameters:

list: The list to convert

Returns:

Map<a, b>: A map containing all key-value pairs from the list

Map.toArray

Added 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:

map: The map to convert

Returns:

Array<(a, b)>: An array containing all key-value pairs from the given map

Map.fromArray

Added in 0.2.0 No other changes yet.
fromArray : (array: Array<(a, b)>) => Map<a, b>

Creates a map from an array.

Parameters:

array: The array to convert

Returns:

Map<a, b>: A map containing all key-value pairs from the array

Map.filter

Added 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:

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 removed
map: The map to iterate

Map.reject

Added 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:

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 removed
map: The map to iterate

Map.getInternalStats

Added in 0.2.0
versionchanges
0.6.0Return `InternalMapStats` record instead of a tuple
getInternalStats : (map: Map<a, b>) => InternalMapStats

Provides data representing the internal state state of the map.

Parameters:

map: The map to inspect

Returns:

InternalMapStats: The internal state of the map

Map.Immutable

An immutable map implementation.

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module

Types

Type declarations included in the Map.Immutable module.

Map.Immutable.Map

type Map<k, v>

Values

Functions and constants included in the Map.Immutable module.

Map.Immutable.empty

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
empty : Map<a, b>

An empty map

Map.Immutable.size

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
size : (map: Map<a, b>) => Number

Provides the count of key-value pairs stored within the map.

Parameters:

map: The map to inspect

Returns:

Number: The count of key-value pairs in the map

Map.Immutable.isEmpty

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
isEmpty : (map: Map<a, b>) => Bool

Determines if the map contains no key-value pairs.

Parameters:

map: The map to inspect

Returns:

Bool: true if the given map is empty or false otherwise

Map.Immutable.set

Added in 0.6.0
versionchanges
0.5.4Originally 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:

key: The unique key in the map
value: The value to store
map: The base map

Returns:

Map<a, b>: A new map containing the new key-value pair

Map.Immutable.get

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
get : (key: a, map: Map<a, b>) => Option<b>

Retrieves the value for the given key.

Parameters:

key: The key to access
map: The map to access

Returns:

Option<b>: Some(value) if the key exists in the map or None otherwise

Map.Immutable.contains

Added in 0.6.0
versionchanges
0.5.4Originally 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:

key: The key to search for
map: The map to search

Returns:

Bool: true if the map contains the given key or false otherwise

Map.Immutable.remove

Added in 0.6.0
versionchanges
0.5.4Originally 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:

key: The key to exclude
map: The map to exclude from

Returns:

Map<a, b>: A new map without the given key

Map.Immutable.update

Added in 0.6.0
versionchanges
0.5.4Originally 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:

key: The unique key in the map
fn: The updater function
map: The base map

Returns:

Map<a, b>: A new map with the value at the given key modified according to the function’s output

Map.Immutable.forEach

Added in 0.6.0
versionchanges
0.5.4Originally 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:

fn: The iterator function to call with each key and value
map: The map to iterate

Map.Immutable.reduce

Added in 0.6.0
versionchanges
0.5.4Originally 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:

fn: The reducer function to call on each key and value, where the value returned will be the next accumulator value
init: The initial value to use for the accumulator on the first iteration
map: The map to iterate

Returns:

a: The final accumulator returned from fn

Map.Immutable.keys

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
keys : (map: Map<a, b>) => List<a>

Enumerates all keys in the given map.

Parameters:

map: The map to enumerate

Returns:

List<a>: A list containing all keys from the given map

Map.Immutable.values

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
values : (map: Map<a, b>) => List<b>

Enumerates all values in the given map.

Parameters:

map: The map to enumerate

Returns:

List<b>: A list containing all values from the given map

Map.Immutable.filter

Added in 0.6.0
versionchanges
0.5.4Originally 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:

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 excluded
map: The map to iterate

Returns:

Map<a, b>: A new map excluding the key-value pairs not fulfilling the predicate

Map.Immutable.reject

Added in 0.6.0
versionchanges
0.5.4Originally 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:

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 excluded
map: The map to iterate

Returns:

Map<a, b>: A new map excluding the key-value pairs fulfilling the predicate

Map.Immutable.fromList

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
fromList : (list: List<(a, b)>) => Map<a, b>

Creates a map from a list.

Parameters:

list: The list to convert

Returns:

Map<a, b>: A map containing all key-value pairs from the list

Map.Immutable.toList

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
toList : (map: Map<a, b>) => List<(a, b)>

Enumerates all key-value pairs in the given map.

Parameters:

map: The map to enumerate

Returns:

List<(a, b)>: A list containing all key-value pairs from the given map

Map.Immutable.fromArray

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
fromArray : (array: Array<(a, b)>) => Map<a, b>

Creates a map from an array.

Parameters:

array: The array to convert

Returns:

Map<a, b>: A map containing all key-value pairs from the array

Map.Immutable.toArray

Added in 0.6.0
versionchanges
0.5.4Originally in `"immutablemap"` module
toArray : (map: Map<a, b>) => Array<(a, b)>

Converts a map into an array of its key-value pairs.

Parameters:

map: The map to convert

Returns:

Array<(a, b)>: An array containing all key-value pairs from the given map

Sign up for farm-to-inbox developer news

You can unsubscribe at any time. Read our privacy policy.

Copyright © 2024 The Grain Programming Language