INSTANCE: cycles virtual-sequence
-TUPLE: element-repeats
-{ seq sequence read-only }
+TUPLE: element-repeats < sequence-view
{ times integer read-only } ;
C: <element-repeats> element-repeats
M: element-repeats virtual@ [ times>> /i ] [ seq>> ] bi ;
-M: element-repeats virtual-exemplar seq>> ;
-
INSTANCE: element-repeats immutable-sequence
-INSTANCE: element-repeats virtual-sequence
-
: repeat-elements ( seq times -- new-seq )
dupd <element-repeats> swap like ;
USING: accessors kernel math math.order sequences ;
IN: sequences.snipped
-TUPLE: snipped
-{ seq sequence read-only }
+TUPLE: snipped < sequence-view
{ from integer read-only }
{ length integer read-only } ;
M: snipped virtual@
[ [ from>> dupd >= ] keep [ length>> + ] curry when ]
[ seq>> ] bi ;
-
-M: snipped virtual-exemplar seq>> ;
-
-INSTANCE: snipped virtual-sequence