From 62be0fde4afb5d725cd12be889149b86cc93e869 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 24 Sep 2013 14:50:45 -0700 Subject: [PATCH] sequences.extras: adding reject, "[ not ] compose filter". --- extra/sequences/extras/extras-tests.factor | 2 ++ extra/sequences/extras/extras.factor | 6 ++++++ 2 files changed, 8 insertions(+) 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