]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extras: Add count-head and count-tail
authorDoug Coleman <doug.coleman@gmail.com>
Wed, 4 Jul 2018 23:32:19 +0000 (18:32 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Wed, 4 Jul 2018 23:32:19 +0000 (18:32 -0500)
extra/sequences/extras/extras.factor

index 334fc60b3f275f5cf73d455366fcdbb1c94b9d44..85bf1327191b2d026e55a298587944d21d0eef00 100644 (file)
@@ -628,6 +628,13 @@ PRIVATE>
     [ '[ @ not ] find drop ] keepd swap
     [ dup length ] unless* tail-slice ; inline
 
+: count-head ( seq quot -- n )
+    [ not ] compose find drop ; inline
+
+: count-tail ( seq quot -- n )
+    [ not ] compose [ find-last drop ] 2keep drop
+    length swap [ - 1 - ] when* ; inline
+
 :: interleaved-as ( seq glue exemplar -- newseq )
     seq length dup 1 - + 0 max exemplar new-sequence :> newseq
     seq [ 2 * newseq set-nth-unsafe ] each-index