]> gitweb.factorcode.org Git - factor.git/blobdiff - core/sets/sets.factor
sets: adding ?delete that returns a boolean if elt was deleted from set.
[factor.git] / core / sets / sets.factor
index 22756b92f30940c6d0fb0cabaf09aadadcad1771..b65f4ba5622973e4b99f07c406a658c3c7219591 100644 (file)
@@ -10,6 +10,7 @@ GENERIC: adjoin ( elt set -- )
 GENERIC: ?adjoin ( elt set -- ? )
 GENERIC: in? ( elt set -- ? )
 GENERIC: delete ( elt set -- )
+GENERIC: ?delete ( elt set -- ? )
 GENERIC: set-like ( set exemplar -- set' )
 GENERIC: fast-set ( set -- set' )
 GENERIC: members ( set -- seq )
@@ -38,6 +39,8 @@ M: f clear-set drop ; inline
 
 M: set ?adjoin 2dup in? [ 2drop f ] [ adjoin t ] if ;
 
+M: set ?delete 2dup in? [ delete t ] [ 2drop f ] if ;
+
 M: set null? cardinality zero? ; inline
 
 M: set cardinality members length ;