sets: encourage re-use by adding (intersect) and (diff).

db4
John Benediktsson 2013-03-26 15:16:26 -07:00
parent 08715bae04
commit e25fe7c7cc
1 changed files with 9 additions and 6 deletions

View File

@ -56,8 +56,7 @@ M: set set-like drop ; inline
PRIVATE>
M: set union
[ (union) ] keep set-like ;
M: set union [ (union) ] keep set-like ;
<PRIVATE
@ -70,13 +69,17 @@ M: set union
: small/large ( set1 set2 -- set1' set2' )
2dup [ cardinality ] bi@ > [ swap ] when ;
: (intersect) ( set1 set2 -- seq )
small/large sequence/tester filter ; inline
: (diff) ( set1 set2 -- seq )
sequence/tester [ not ] compose filter ; inline
PRIVATE>
M: set intersect
[ small/large sequence/tester filter ] keep set-like ;
M: set intersect [ (intersect) ] keep set-like ;
M: set diff
[ sequence/tester [ not ] compose filter ] keep set-like ;
M: set diff [ (diff) ] keep set-like ;
M: set intersects?
small/large sequence/tester any? ;