]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.repeating: cleanup repeats.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 16 Feb 2018 16:31:22 +0000 (08:31 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 16 Feb 2018 16:31:22 +0000 (08:31 -0800)
extra/sequences/repeating/repeating.factor

index 502de2dd0b941bc2ef56263c6f273598ed6dd862..b087a5ea0f028a9bbf827f3f6011810cbbbfd1c2 100644 (file)
@@ -18,7 +18,7 @@ M: cycles length length>> ;
 
 M: cycles set-length length<< ;
 
-M: cycles virtual@ ( n seq -- n' seq' ) circular>> ;
+M: cycles virtual@ circular>> ;
 
 M: cycles virtual-exemplar circular>> ;
 
@@ -26,17 +26,19 @@ INSTANCE: cycles virtual-sequence
 
 TUPLE: repeats
 { seq sequence read-only }
-{ length integer read-only } ;
+{ times integer read-only } ;
 
-: <repeats> ( seq times -- repeats )
-    over length * repeats boa ;
+C: <repeats> repeats
 
-: repeat ( seq times -- new-seq )
-    dupd <repeats> swap like ;
+M: repeats length [ seq>> length ] [ times>> ] bi * ;
 
-M: repeats length length>> ;
+M: repeats virtual@ [ times>> /i ] [ seq>> ] bi ;
 
-M: repeats nth-unsafe
-    [ length>> / ] [ seq>> [ length * >integer ] keep nth ] bi ;
+M: repeats virtual-exemplar seq>> ;
 
 INSTANCE: repeats immutable-sequence
+
+INSTANCE: repeats virtual-sequence
+
+: repeat ( seq times -- new-seq )
+    dupd <repeats> swap like ;