about summary refs log tree commit diff
path: root/src/lib/vec.rs
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2011-07-26 14:06:02 +0200
committerMarijn Haverbeke <marijnh@gmail.com>2011-07-26 14:06:02 +0200
commitaea537779e01359cf8da6944218362d44bfaee83 (patch)
tree235edf688d4fb4928ff766c063dcac779548f34d /src/lib/vec.rs
parente123366bffa69ee3877335b9ca979b0cc301d07c (diff)
downloadrust-aea537779e01359cf8da6944218362d44bfaee83.tar.gz
rust-aea537779e01359cf8da6944218362d44bfaee83.zip
Remove all uses of tuples from the compiler and stdlib
Diffstat (limited to 'src/lib/vec.rs')
-rw-r--r--src/lib/vec.rs22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/lib/vec.rs b/src/lib/vec.rs
index 445ac8fe125..432098f970b 100644
--- a/src/lib/vec.rs
+++ b/src/lib/vec.rs
@@ -266,29 +266,29 @@ fn foldl[T, U](fn(&U, &T) -> U  p, &U z, &vec[T] v) -> U {
     }
 }
 
-fn unzip[T, U](&vec[tup(T, U)] v) -> tup(vec[T], vec[U]) {
-    auto sz = len[tup(T, U)](v);
+fn unzip[T, U](&vec[rec(T _0, U _1)] v) -> rec(vec[T] _0, vec[U] _1) {
+    auto sz = len(v);
     if (sz == 0u) {
-        ret tup(alloc[T](0u), alloc[U](0u));
+        ret rec(_0=alloc[T](0u), _1=alloc[U](0u));
     } else {
-        auto rest = slice[tup(T, U)](v, 1u, sz);
+        auto rest = slice(v, 1u, sz);
         auto tl = unzip[T, U](rest);
         auto a = [v.(0)._0];
         auto b = [v.(0)._1];
-        ret tup(a + tl._0, b + tl._1);
+        ret rec(_0=a + tl._0, _1=b + tl._1);
     }
 }
 
 
 // FIXME make the lengths being equal a constraint
-fn zip[T, U](&vec[T] v, &vec[U] u) -> vec[tup(T, U)] {
-    auto sz = len[T](v);
-    assert (sz == len[U](u));
+fn zip[T, U](&vec[T] v, &vec[U] u) -> vec[rec(T _0, U _1)] {
+    auto sz = len(v);
+    assert (sz == len(u));
     if (sz == 0u) {
-        ret alloc[tup(T, U)](0u);
+        ret alloc(0u);
     } else {
-        auto rest = zip[T, U](slice[T](v, 1u, sz), slice[U](u, 1u, sz));
-        vec::push(rest, tup(v.(0), u.(0)));
+        auto rest = zip(slice(v, 1u, sz), slice(u, 1u, sz));
+        vec::push(rest, rec(_0=v.(0), _1=u.(0)));
         ret rest;
     }
 }