From 6f78e38ab4c3dd474c3b16f747fd88e1056043a8 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 13 Aug 2008 14:19:48 -0500 Subject: [PATCH] Add a couple of words to disjoint-sets --- basis/disjoint-sets/disjoint-sets.factor | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/basis/disjoint-sets/disjoint-sets.factor b/basis/disjoint-sets/disjoint-sets.factor index f48129fbd4..77e4a53f7b 100644 --- a/basis/disjoint-sets/disjoint-sets.factor +++ b/basis/disjoint-sets/disjoint-sets.factor @@ -88,6 +88,14 @@ M:: disjoint-set equate ( a b disjoint-set -- ) disjoint-set link-sets ] if ; +: equate-all-with ( seq a disjoint-set -- ) + '[ , , equate ] each ; + +: equate-all ( seq disjoint-set -- ) + over dup empty? [ 2drop ] [ + [ unclip-slice ] dip equate-all-with + ] if ; + M: disjoint-set clone [ parents>> ] [ ranks>> ] [ counts>> ] tri [ clone ] tri@ disjoint-set boa ;