]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences: add find* variant
authorDoug Coleman <doug.coleman@gmail.com>
Tue, 14 Feb 2023 05:29:22 +0000 (23:29 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 26 Feb 2023 23:11:04 +0000 (17:11 -0600)
core/sequences/sequences.factor

index e6717e23a1b993aa5a3c2183f6804e06a92ca897..b0e1f3190b4e04854dd412e542c7631f97c3735e 100644 (file)
@@ -627,6 +627,27 @@ PRIVATE>
 : find-index ( ... seq quot: ( ... elt i -- ... ? ) -- ... i elt )
     [ 0 ] 2dip find-index-from ; inline
 
+: find-from* ( ... n seq quot: ( ... elt -- ... ? ) -- ... elt i/f )
+    '[ _ find-from-unsafe element/index ] bounds-check-call ; inline
+
+: find* ( ... seq quot: ( ... elt -- ... ? ) -- ... elt i/f )
+    [ 0 ] 2dip find-from-unsafe 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