]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.zipped: adding zip virtual sequence.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 27 Sep 2012 01:07:53 +0000 (18:07 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 27 Sep 2012 01:07:53 +0000 (18:07 -0700)
extra/sequences/zipped/authors.txt [new file with mode: 0644]
extra/sequences/zipped/summary.txt [new file with mode: 0644]
extra/sequences/zipped/zipped-tests.factor [new file with mode: 0644]
extra/sequences/zipped/zipped.factor [new file with mode: 0644]

diff --git a/extra/sequences/zipped/authors.txt b/extra/sequences/zipped/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/extra/sequences/zipped/summary.txt b/extra/sequences/zipped/summary.txt
new file mode 100644 (file)
index 0000000..b54f109
--- /dev/null
@@ -0,0 +1 @@
+Virtual "zip" sequences
diff --git a/extra/sequences/zipped/zipped-tests.factor b/extra/sequences/zipped/zipped-tests.factor
new file mode 100644 (file)
index 0000000..0bc45cf
--- /dev/null
@@ -0,0 +1,7 @@
+! Copyright (C) 2012 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+USING: arrays tools.test ;
+IN: sequences.zipped
+
+{ { { 1 4 } { 2 5 } { 3 6 } } }
+[ { 1 2 3 } { 4 5 6 } <zipped> >array ] unit-test
diff --git a/extra/sequences/zipped/zipped.factor b/extra/sequences/zipped/zipped.factor
new file mode 100644 (file)
index 0000000..beddefb
--- /dev/null
@@ -0,0 +1,19 @@
+! Copyright (C) 2012 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+USING: accessors arrays kernel math sequences
+sequences.private ;
+IN: sequences.zipped
+
+TUPLE: zipped
+{ keys sequence read-only }
+{ values sequence read-only } ;
+
+C: <zipped> zipped
+
+M: zipped length
+    [ keys>> ] [ values>> ] bi min-length ;
+
+M: zipped nth-unsafe
+    [ keys>> nth-unsafe ] [ values>> nth-unsafe ] 2bi 2array ;
+
+INSTANCE: zipped immutable-sequence