Add greendale's partition combinator to sequences.lib

db4
Slava Pestov 2007-12-16 20:34:44 -05:00
parent 7b17a9fcc2
commit 9ef535bc77
1 changed files with 9 additions and 0 deletions

9
extra/sequences/lib/lib.factor Normal file → Executable file
View File

@ -104,3 +104,12 @@ PRIVATE>
: power-set ( seq -- subsets )
2 over length exact-number-strings swap [ nths ] curry map ;
: push-either ( elt quot accum1 accum2 -- )
>r >r keep swap r> r> ? push ; inline
: 2pusher ( quot -- quot accum1 accum2 )
V{ } clone V{ } clone [ [ push-either ] 3curry ] 2keep ; inline
: partition ( seq quot -- trueseq falseseq )
over >r 2pusher >r >r each r> r> r> drop ; inline