X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blobdiff_plain;f=extra%2Fsequences%2Fextras%2Fextras.factor;h=f47ebc56508934065d8e4552fe9df11cd3efa84e;hp=fbe65dc2ee477ef1e8bcbed358451a3d777c3b9c;hb=458848d43c085d649c58f0fbb399c4b6608f892f;hpb=726a8b784b91bb5e5d1ee01af46a6b91cf0ff438 diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index fbe65dc2ee..f47ebc5650 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -801,6 +801,18 @@ INSTANCE: step-slice virtual-sequence [ [ push ] curry compose 3nested-each ] keep ] keep like ; inline +: each-prior ( ... seq quot: ( ... prior elt -- ... ) -- ... ) + '[ [ swap @ ] keep ] + sequence-operator 0 -rot each-integer-from drop ; inline + +: map-prior-as ( ... seq quot: ( ... prior elt -- elt' ) exemplar -- seq' ) + [ + '[ [ swap @ ] keep swap ] length-operator 0 -rot + ] dip map-integers-as nip ; inline + +: map-prior ( ... seq quot: ( ... prior elt -- elt' ) -- seq' ) + over map-prior-as ; inline + TUPLE: virtual-zip-index seq ; C: virtual-zip-index