From: Doug Coleman Date: Wed, 4 Jul 2018 23:32:19 +0000 (-0500) Subject: sequences.extras: Add count-head and count-tail X-Git-Tag: 0.98~71 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=000f3eab07a77986987375a03cbfec9fb6461f49 sequences.extras: Add count-head and count-tail --- diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 334fc60b3f..85bf132719 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -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