sets: use push-unsafe in pruned.
parent
f963b2eb1b
commit
ccb46e62d4
|
@ -1,6 +1,7 @@
|
||||||
! Copyright (C) 2010 Daniel Ehrenberg
|
! Copyright (C) 2010 Daniel Ehrenberg
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: assocs hashtables kernel math sequences vectors ;
|
USING: assocs hashtables growable.private kernel math sequences
|
||||||
|
vectors ;
|
||||||
FROM: assocs => change-at ;
|
FROM: assocs => change-at ;
|
||||||
IN: sets
|
IN: sets
|
||||||
|
|
||||||
|
@ -24,6 +25,8 @@ GENERIC: null? ( set -- ? )
|
||||||
GENERIC: cardinality ( set -- n )
|
GENERIC: cardinality ( set -- n )
|
||||||
GENERIC: clear-set ( set -- )
|
GENERIC: clear-set ( set -- )
|
||||||
|
|
||||||
|
M: f members drop f ;
|
||||||
|
|
||||||
M: f cardinality drop 0 ;
|
M: f cardinality drop 0 ;
|
||||||
|
|
||||||
M: f delete 2drop ;
|
M: f delete 2drop ;
|
||||||
|
@ -97,9 +100,9 @@ M: set all-unique? drop t ;
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: (pruned) ( elt hash vec -- )
|
: (pruned) ( elt set accum -- )
|
||||||
2over in? [ 3drop ] [
|
2over in? [ 3drop ] [
|
||||||
[ drop adjoin ] [ nip push ] 3bi
|
[ drop adjoin ] [ nip push-unsafe ] 3bi
|
||||||
] if ; inline
|
] if ; inline
|
||||||
|
|
||||||
: pruned ( seq -- newseq )
|
: pruned ( seq -- newseq )
|
||||||
|
|
Loading…
Reference in New Issue