diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index 65d27895ac..c53bc1f830 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -175,3 +175,5 @@ IN: sequences.extras.tests { 1 "beef" } [ { "chicken" "beef" "moose" } [ length ] infimum-by* ] unit-test { 0 "chicken" } [ { "chicken" "beef" "moose" } [ length ] supremum-by* ] unit-test { 2 "moose" } [ { "chicken" "beef" "moose" } [ first ] supremum-by* ] unit-test + +{ "0123456789" } [ 58 iota [ 48 < ] "" reject-as ] unit-test diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 648bc7166e..c9b0793439 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -512,3 +512,9 @@ PRIVATE> : infimum-by* ( ... seq quot: ( ... elt -- ... x ) -- ... i elt ) [ before? ] select-by* ; inline + +: reject-as ( ... seq quot: ( ... elt -- ... ? ) exemplar -- ... subseq ) + [ [ not ] compose ] [ filter-as ] bi* ; inline + +: reject ( ... seq quot: ( ... elt -- ... ? ) -- ... subseq ) + over reject-as ; inline