diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index abd15a7b62..11e32fca54 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -172,3 +172,5 @@ IN: sequences.extras.tests { "0123456789" } [ 58 iota [ 48 < ] "" reject-as ] unit-test { V{ 1 3 5 7 9 } } [ 10 iota >vector [ even? ] reject! ] unit-test + +{ 3/10 } [ 10 iota [ 3 < ] count* ] unit-test diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index a138525f12..bf87496965 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -527,3 +527,6 @@ PRIVATE> : replicate-into ( ... seq quot: ( ... -- ... newelt ) -- ... ) over [ length ] 2dip '[ _ dip _ set-nth-unsafe ] each-integer ; inline + +: count* ( ... seq quot: ( ... elt -- ... ? ) -- ... % ) + over [ count ] [ length ] bi* / ; inline