1 ! Copyright (C) 2008 Alex Chapman
2 ! See http;//factorcode.org/license.txt for BSD license
3 USING: accessors circular kernel sequences ;
4 IN: sequences.repeating
6 TUPLE: repeating circular len ;
8 : <repeating> ( seq length -- repeating )
9 [ <circular> ] dip repeating boa ;
11 : repeated ( seq length -- new-seq )
12 dupd <repeating> swap like ;
14 M: repeating length len>> ;
15 M: repeating set-length (>>len) ;
17 M: repeating virtual@ ( n seq -- n' seq' ) circular>> ;
19 M: repeating virtual-exemplar circular>> ;
21 INSTANCE: repeating virtual-sequence