From: Doug Coleman Date: Tue, 21 Feb 2023 02:33:59 +0000 (-0600) Subject: core; move find* to extras X-Git-Tag: 0.99~535 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=4dd903e70d6d98f803b503f542831d3bd5f60efc core; move find* to extras --- diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 798c9da377..fc9e313763 100644 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -616,27 +616,6 @@ PRIVATE> : find-index ( ... seq quot: ( ... elt i -- ... ? ) -- ... i elt ) [ 0 ] 2dip find-index-from ; inline -: find-from* ( ... n seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) - '[ _ do-find-from element/index ] bounds-check-call ; inline - -: find* ( ... seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) - [ 0 ] 2dip do-find-from element/index ; inline - -: find-last-from* ( ... n seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) - '[ _ find-last-from-unsafe element/index ] bounds-check-call ; inline - -: find-last* ( ... seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) - [ index-of-last ] dip find-last-from* ; inline - -: find-index-from* ( ... n seq quot: ( ... elt i -- ... ? ) -- ... elt i/f ) - '[ - _ [ sequence-index-operator find-integer-from ] keepd - element/index - ] bounds-check-call ; inline - -: find-index* ( ... seq quot: ( ... elt i -- ... ? ) -- ... elt i/f ) - [ 0 ] 2dip find-index-from* ; inline - : all? ( ... seq quot: ( ... elt -- ... ? ) -- ... ? ) sequence-operator all-integers-from? ; inline diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 1d5dc80b97..ac0c0afee4 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -684,6 +684,27 @@ PRIVATE> : map-find-index ( ... seq quot: ( ... elt index -- ... result/f ) -- ... result i elt ) [ find-index ] (map-find-index) ; inline +: find-from* ( ... n seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) + '[ _ do-find-from element/index ] bounds-check-call ; inline + +: find* ( ... seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) + [ 0 ] 2dip do-find-from element/index ; inline + +: find-last-from* ( ... n seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) + '[ _ find-last-from-unsafe element/index ] bounds-check-call ; inline + +: find-last* ( ... seq quot: ( ... elt -- ... ? ) -- ... elt i/f ) + [ index-of-last ] dip find-last-from* ; inline + +: find-index-from* ( ... n seq quot: ( ... elt i -- ... ? ) -- ... elt i/f ) + '[ + _ [ sequence-index-operator find-integer-from ] keepd + element/index + ] bounds-check-call ; inline + +: find-index* ( ... seq quot: ( ... elt i -- ... ? ) -- ... elt i/f ) + [ 0 ] 2dip find-index-from* ; inline + : filter-length ( seq n -- seq' ) '[ length _ = ] filter ; : all-shortest ( seqs -- seqs' ) dup shortest length filter-length ;