sequences.extras: adding extract!.

It's similar to reject! but returns the items that were removed.
clean-macosx-x86-32
John Benediktsson 2019-06-28 11:27:23 -07:00
parent 00a0edb199
commit 81f2e9a0a7
2 changed files with 6 additions and 0 deletions

View File

@ -281,3 +281,5 @@ tools.test vectors vocabs ;
{ 0 } [ { 1 2 3 4 } [ 5 > ] count-tail ] unit-test { 0 } [ { 1 2 3 4 } [ 5 > ] count-tail ] unit-test
{ 2 } [ { 1 2 3 4 } [ 2 > ] count-tail ] unit-test { 2 } [ { 1 2 3 4 } [ 2 > ] count-tail ] unit-test
{ 4 } [ { 1 2 3 4 } [ 5 < ] count-tail ] unit-test { 4 } [ { 1 2 3 4 } [ 5 < ] count-tail ] unit-test
{ SBUF" aco" SBUF" ftr" } [ SBUF" factor" dup [ even? ] extract! ] unit-test

View File

@ -649,3 +649,7 @@ PRIVATE>
: interleaved ( seq glue -- newseq ) : interleaved ( seq glue -- newseq )
over interleaved-as ; over interleaved-as ;
: extract! ( ... seq quot: ( ... elt -- ... ? ) -- ... seq )
[ dup ] compose over [ length ] keep new-resizable
[ [ push-if ] 2curry reject! ] keep swap like ; inline