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