Zafu/Collection/HashMapsource code:
public dependencies: Zafu/Abstract/Eq, Zafu/Abstract/Hash
HashMapalter, contains_key, difference, difference_assume_same_hash,
empty, eq, filter, from_List, get, get_or, hash, intersection_with, is_empty, map_hash_key, map_values, partition, remove, singleton, size, transform, union_with, union_with_assume_same_hash,
updatedHashMap[k, v]type HashMap[k: *, v: +*]
alterUnified insert/update/remove operation.
def alter[a, b](map: HashMap[a, b], key: a, fn: Option[b] -> Option[b]) -> HashMap[a, b]
contains_keyTrue when key is present.
def contains_key[a, b](map: HashMap[a, b], key: a) -> Bool
differenceRemoves keys from left that appear in right (always using left semantics).
references: HashMap
def difference[a, b, c](left: HashMap[a, b], right: HashMap[a, c]) -> HashMap[a, b]
difference_assume_same_hashFast path difference when caller knows both maps share key hash semantics.
references: HashMap
def difference_assume_same_hash[a, b, c](left: HashMap[a, b], right: HashMap[a, c]) -> HashMap[a, b]
emptyEmpty map for a chosen key hash/equality dictionary.
references: HashMap, Zafu/Abstract/Hash::Hash
def empty[a, b](hash_key: Zafu/Abstract/Hash::Hash[a]) -> HashMap[a, b]
eqEquality adapter for maps.
references: HashMap, Zafu/Abstract/Eq::Eq
def eq[a, b](eq_value: Zafu/Abstract/Eq::Eq[a]) -> Zafu/Abstract/Eq::Eq[HashMap[b, a]]
filterKeep only entries satisfying pred.
def filter[a, b](map: HashMap[a, b], pred: (a, b) -> Bool) -> HashMap[a, b]
from_ListBuilds a map from pairs using last-write-wins for duplicate keys.
references: HashMap, List, Tuple2, Zafu/Abstract/Hash::Hash
def from_List[a, b](hash_key: Zafu/Abstract/Hash::Hash[a], items: List[(a, b)]) -> HashMap[a, b]
getReturns value for key when present.
def get[a, b](map: HashMap[a, b], key: a) -> Option[b]
get_orReturns value for key or evaluates fallback when absent.
def get_or[a, b](map: HashMap[a, b], key: a, on_missing: () -> b) -> b
hashHash adapter for maps.
references: HashMap, Zafu/Abstract/Hash::Hash
def hash[a, b](hash_value: Zafu/Abstract/Hash::Hash[a]) -> Zafu/Abstract/Hash::Hash[HashMap[b, a]]
intersection_withBuilds values for keys present in both maps.
references: HashMap
def intersection_with[a,
b,
c,
d](left: HashMap[a, b], right: HashMap[a, c], combine: (a, b, c) -> d) -> HashMap[a, d]
is_emptyTrue if map has no entries.
def is_empty[a, b](map: HashMap[a, b]) -> Bool
map_hash_keyreferences: HashMap, Zafu/Abstract/Hash::Hash
def map_hash_key[a, b](map: HashMap[a, b]) -> Zafu/Abstract/Hash::Hash[a]
map_valuesValue-only map transform.
references: HashMap
def map_values[a, b, c](map: HashMap[a, b], fn: b -> c) -> HashMap[a, c]
partitionSplits map by predicate.
references: Bool, HashMap, Tuple2
def partition[a, b](map: HashMap[a, b], pred: (a, b) -> Bool) -> (HashMap[a, b], HashMap[a, b])
removeRemoves one key when present.
references: HashMap
def remove[a, b](map: HashMap[a, b], key: a) -> HashMap[a, b]
singletonSingle-item map.
references: HashMap, Zafu/Abstract/Hash::Hash
def singleton[a, b](hash_key: Zafu/Abstract/Hash::Hash[a], key: a, value: b) -> HashMap[a, b]
sizeO(1) cached size.
def size[a, b](map: HashMap[a, b]) -> Int
transformShape-preserving key/value transform without key rehashing.
references: HashMap
def transform[a, b, c](map: HashMap[a, b], fn: (a, b) -> c) -> HashMap[a, c]
union_withSafe union that always uses left-map key semantics.
references: HashMap
def union_with[a,
b](left: HashMap[a, b], right: HashMap[a, b], resolve: (a, b, b) -> b) -> HashMap[a, b]
union_with_assume_same_hashFast path union when caller knows both maps share key hash semantics.
references: HashMap
def union_with_assume_same_hash[a,
b](left: HashMap[a, b], right: HashMap[a, b], resolve: (a, b, b) -> b) -> HashMap[a, b]
updatedInserts/replaces one key/value.
references: HashMap
def updated[a, b](map: HashMap[a, b], key: a, value: b) -> HashMap[a, b]