Skip to content

Set

Immutable unique collection operations. All functions return new sets — they never mutate the original.

FunctionSignatureDescription
Set.empty() -> Set<T>Create an empty set
Set.fromArray(Array<T>) -> Set<T>Create a set from an array
Set.toArray(Set<T>) -> Array<T>Convert a set to an array
Set.add(Set<T>, T) -> Set<T>Add an element
Set.remove(Set<T>, T) -> Set<T>Remove an element
Set.has(Set<T>, T) -> booleanCheck if an element exists
Set.size(Set<T>) -> numberNumber of elements
Set.isEmpty(Set<T>) -> booleanTrue if set has no elements
Set.union(Set<T>, Set<T>) -> Set<T>Union of two sets
Set.intersect(Set<T>, Set<T>) -> Set<T>Intersection of two sets
Set.diff(Set<T>, Set<T>) -> Set<T>Difference (elements in first but not second)
// Create a set from an array
let tags = Set.fromArray(["urgent", "bug", "frontend"])
// All operations are immutable
let updated = tags
|> Set.add("backend")
|> Set.remove("frontend")
// Check membership
let isUrgent = tags |> Set.has("urgent") // true
// Set operations
let teamA = Set.fromArray(["alice", "bob", "carol"])
let teamB = Set.fromArray(["bob", "carol", "dave"])
let everyone = Set.union(teamA, teamB) // {"alice", "bob", "carol", "dave"}
let overlap = Set.intersect(teamA, teamB) // {"bob", "carol"}
let onlyA = Set.diff(teamA, teamB) // {"alice"}
// Convert back to array
let tagList = tags |> Set.toArray