sets: fix performance regression in all-unique? word
parent
81c1e9fcb4
commit
3e91a7f280
|
@ -16,13 +16,22 @@ M: hash-set in? table>> key? ; inline
|
|||
M: hash-set adjoin table>> dupd set-at ; inline
|
||||
M: hash-set delete table>> delete-at ; inline
|
||||
M: hash-set members table>> keys ; inline
|
||||
M: hash-set set-like
|
||||
drop dup hash-set? [ members <hash-set> ] unless ;
|
||||
M: hash-set clone
|
||||
table>> clone hash-set boa ;
|
||||
M: hash-set set-like drop dup hash-set? [ members <hash-set> ] unless ;
|
||||
M: hash-set clone table>> clone hash-set boa ;
|
||||
|
||||
M: sequence fast-set <hash-set> ;
|
||||
M: f fast-set drop H{ } clone hash-set boa ;
|
||||
|
||||
M: sequence duplicates
|
||||
f fast-set [ [ in? ] [ adjoin ] 2bi ] curry filter ;
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: (all-unique?) ( elt hash -- ? )
|
||||
2dup in? [ 2drop f ] [ adjoin t ] if ; inline
|
||||
|
||||
PRIVATE>
|
||||
|
||||
M: sequence all-unique?
|
||||
dup length <hashtable> hash-set boa
|
||||
[ (all-unique?) ] curry all? ;
|
||||
|
|
|
@ -92,9 +92,6 @@ M: sequence set-like
|
|||
M: sequence members
|
||||
[ pruned ] keep like ;
|
||||
|
||||
M: sequence all-unique?
|
||||
dup pruned sequence= ;
|
||||
|
||||
: combine ( sets -- set )
|
||||
[ f ]
|
||||
[ [ [ members ] map concat ] [ first ] bi set-like ]
|
||||
|
|
Loading…
Reference in New Issue