Union-Find datatype to represent equivalence relations (partitions) on finite sets.
The following creates two disjoint sets (or partitions, or equivalence classes):
let (Partition f as ptn) =
unequal
|> equate (2,1)
|> equate (3,1)
|> equate (4,1)
|> equate (6,5)
f |> graph
val it: (int * pnode<int>) list =
[(1, Terminal (1, 4)); (2, Nonterminal 1); (3, Nonterminal 1);
(4, Nonterminal 1); (5, Terminal (5, 2)); (6, Nonterminal 5)]
Union case | Description |
|