Skip to content

Commit

Permalink
sequences.extras: adding extract!.
Browse files Browse the repository at this point in the history
It's similar to reject! but returns the items that were removed.
  • Loading branch information
mrjbq7 committed Jun 28, 2019
1 parent 00a0edb commit 81f2e9a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
2 changes: 2 additions & 0 deletions extra/sequences/extras/extras-tests.factor
Expand Up @@ -281,3 +281,5 @@ tools.test vectors vocabs ;
{ 0 } [ { 1 2 3 4 } [ 5 > ] count-tail ] unit-test
{ 2 } [ { 1 2 3 4 } [ 2 > ] 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
4 changes: 4 additions & 0 deletions extra/sequences/extras/extras.factor
Expand Up @@ -649,3 +649,7 @@ PRIVATE>

: interleaved ( seq glue -- newseq )
over interleaved-as ;

: extract! ( ... seq quot: ( ... elt -- ... ? ) -- ... seq )
[ dup ] compose over [ length ] keep new-resizable
[ [ push-if ] 2curry reject! ] keep swap like ; inline

0 comments on commit 81f2e9a

Please sign in to comment.