]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.rotated: adding rotated virtual sequences.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 11 Sep 2012 17:34:24 +0000 (10:34 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 11 Sep 2012 17:35:21 +0000 (10:35 -0700)
extra/sequences/rotated/authors.txt [new file with mode: 0644]
extra/sequences/rotated/rotated-tests.factor [new file with mode: 0644]
extra/sequences/rotated/rotated.factor [new file with mode: 0644]
extra/sequences/rotated/summary.txt [new file with mode: 0644]

diff --git a/extra/sequences/rotated/authors.txt b/extra/sequences/rotated/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/extra/sequences/rotated/rotated-tests.factor b/extra/sequences/rotated/rotated-tests.factor
new file mode 100644 (file)
index 0000000..5981e1e
--- /dev/null
@@ -0,0 +1,10 @@
+! Copyright (C) 2012 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+USING: strings tools.test ;
+IN: sequences.rotated
+
+{ "fasd" } [ "asdf" -1 <rotated> >string ] unit-test
+{ "sdfa" } [ "asdf" 1 <rotated> >string ] unit-test
+{ "asdf" } [ "asdf" 0 <rotated> >string ] unit-test
+{ "asdf" } [ "asdf" 4 <rotated> >string ] unit-test
+{ "asdf" } [ "asdf" -4 <rotated> >string ] unit-test
diff --git a/extra/sequences/rotated/rotated.factor b/extra/sequences/rotated/rotated.factor
new file mode 100644 (file)
index 0000000..8250c76
--- /dev/null
@@ -0,0 +1,19 @@
+! Copyright (C) 2012 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+USING: accessors circular kernel math sequences ;
+IN: sequences.rotated
+
+TUPLE: rotated
+{ circular circular read-only }
+{ n integer read-only } ;
+
+: <rotated> ( seq n -- rotated )
+    [ <circular> ] dip rotated boa ;
+
+M: rotated length circular>> length ;
+
+M: rotated virtual@ [ n>> + ] [ circular>> ] bi ;
+
+M: rotated virtual-exemplar circular>> ;
+
+INSTANCE: rotated virtual-sequence
diff --git a/extra/sequences/rotated/summary.txt b/extra/sequences/rotated/summary.txt
new file mode 100644 (file)
index 0000000..e48e259
--- /dev/null
@@ -0,0 +1 @@
+Rotated virtual sequences