sequences.repeating: cleanup repeats.
parent
2d13cecc22
commit
b38c1ffa16
|
@ -18,7 +18,7 @@ M: cycles length length>> ;
|
||||||
|
|
||||||
M: cycles set-length length<< ;
|
M: cycles set-length length<< ;
|
||||||
|
|
||||||
M: cycles virtual@ ( n seq -- n' seq' ) circular>> ;
|
M: cycles virtual@ circular>> ;
|
||||||
|
|
||||||
M: cycles virtual-exemplar circular>> ;
|
M: cycles virtual-exemplar circular>> ;
|
||||||
|
|
||||||
|
@ -26,17 +26,19 @@ INSTANCE: cycles virtual-sequence
|
||||||
|
|
||||||
TUPLE: repeats
|
TUPLE: repeats
|
||||||
{ seq sequence read-only }
|
{ seq sequence read-only }
|
||||||
{ length integer read-only } ;
|
{ times integer read-only } ;
|
||||||
|
|
||||||
: <repeats> ( seq times -- repeats )
|
C: <repeats> repeats
|
||||||
over length * repeats boa ;
|
|
||||||
|
M: repeats length [ seq>> length ] [ times>> ] bi * ;
|
||||||
|
|
||||||
|
M: repeats virtual@ [ times>> /i ] [ seq>> ] bi ;
|
||||||
|
|
||||||
|
M: repeats virtual-exemplar seq>> ;
|
||||||
|
|
||||||
|
INSTANCE: repeats immutable-sequence
|
||||||
|
|
||||||
|
INSTANCE: repeats virtual-sequence
|
||||||
|
|
||||||
: repeat ( seq times -- new-seq )
|
: repeat ( seq times -- new-seq )
|
||||||
dupd <repeats> swap like ;
|
dupd <repeats> swap like ;
|
||||||
|
|
||||||
M: repeats length length>> ;
|
|
||||||
|
|
||||||
M: repeats nth-unsafe
|
|
||||||
[ length>> / ] [ seq>> [ length * >integer ] keep nth ] bi ;
|
|
||||||
|
|
||||||
INSTANCE: repeats immutable-sequence
|
|
||||||
|
|
Loading…
Reference in New Issue