Zafu/Collection/HashSet

Zafu/Collection/HashSet

source code:

public dependencies: Zafu/Abstract/Eq, Zafu/Abstract/Hash

Index

Types

HashSet[k]

type HashSet[k: *]

Values

alter

Unified insert/remove operation.

references: Bool, HashSet

def alter[a](set: HashSet[a], item: a, fn: Bool -> Bool) -> HashSet[a]

contains

True when item is present.

references: Bool, HashSet

def contains[a](set: HashSet[a], item: a) -> Bool

difference

Removes items from left that appear in right (always using left semantics).

references: HashSet

def difference[a](left: HashSet[a], right: HashSet[a]) -> HashSet[a]

difference_assume_same_hash

Fast path difference when caller knows both sets share hash semantics.

references: HashSet

def difference_assume_same_hash[a](left: HashSet[a], right: HashSet[a]) -> HashSet[a]

empty

Empty set for a chosen item hash/equality dictionary.

references: HashSet, Zafu/Abstract/Hash::Hash

def empty[a](hash_item: Zafu/Abstract/Hash::Hash[a]) -> HashSet[a]

eq

Equality adapter for sets.

references: HashSet, Zafu/Abstract/Eq::Eq

eq: forall a: *. Zafu/Abstract/Eq::Eq[HashSet[a]]

filter

Keep only entries satisfying pred.

references: Bool, HashSet

def filter[a](set: HashSet[a], pred: a -> Bool) -> HashSet[a]

from_List

Builds a set from items, dropping duplicates.

references: HashSet, List, Zafu/Abstract/Hash::Hash

def from_List[a](hash_item: Zafu/Abstract/Hash::Hash[a], items: List[a]) -> HashSet[a]

hash

Hash adapter for sets.

references: HashSet, Zafu/Abstract/Hash::Hash

hash: forall a: *. Zafu/Abstract/Hash::Hash[HashSet[a]]

intersection

Keeps items present in both sets.

references: HashSet

def intersection[a](left: HashSet[a], right: HashSet[a]) -> HashSet[a]

is_empty

True if set has no entries.

references: Bool, HashSet

def is_empty[a](set: HashSet[a]) -> Bool

partition

Splits set by predicate.

references: Bool, HashSet, Tuple2

def partition[a](set: HashSet[a], pred: a -> Bool) -> (HashSet[a], HashSet[a])

remove

Removes one item when present.

references: HashSet

def remove[a](set: HashSet[a], item: a) -> HashSet[a]

set_hash_item

references: HashSet, Zafu/Abstract/Hash::Hash

def set_hash_item[a](set: HashSet[a]) -> Zafu/Abstract/Hash::Hash[a]

singleton

Single-item set.

references: HashSet, Zafu/Abstract/Hash::Hash

def singleton[a](hash_item: Zafu/Abstract/Hash::Hash[a], item: a) -> HashSet[a]

size

O(1) cached size.

references: HashSet, Int

def size[a](set: HashSet[a]) -> Int

union

Safe union that always uses left-set item semantics.

references: HashSet

def union[a](left: HashSet[a], right: HashSet[a]) -> HashSet[a]

union_assume_same_hash

Fast path union when caller knows both sets share hash semantics.

references: HashSet

def union_assume_same_hash[a](left: HashSet[a], right: HashSet[a]) -> HashSet[a]

updated

Inserts one item.

references: HashSet

def updated[a](set: HashSet[a], item: a) -> HashSet[a]