about summary refs log tree commit diff
path: root/src/libextra
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2013-06-08 15:12:39 +1000
committerHuon Wilson <dbau.pp+github@gmail.com>2013-06-09 02:22:23 +1000
commited299af62566a9f0f285e81408aab5f7680ab4cc (patch)
tree39d540d5fa2b0aee7b88859e1644668a96b67be2 /src/libextra
parent65c7c58c8f15189d2e4ca6b166e933c5fe2d0691 (diff)
downloadrust-ed299af62566a9f0f285e81408aab5f7680ab4cc.tar.gz
rust-ed299af62566a9f0f285e81408aab5f7680ab4cc.zip
std: remove fold[lr] in favour of iterators
Diffstat (limited to 'src/libextra')
-rw-r--r--src/libextra/dlist.rs3
-rw-r--r--src/libextra/list.rs4
-rw-r--r--src/libextra/stats.rs7
3 files changed, 8 insertions, 6 deletions
diff --git a/src/libextra/dlist.rs b/src/libextra/dlist.rs
index 52e2b75d6b6..7fac125243e 100644
--- a/src/libextra/dlist.rs
+++ b/src/libextra/dlist.rs
@@ -20,6 +20,7 @@ Do not use ==, !=, <, etc on doubly-linked lists -- it may not terminate.
 
 use core::prelude::*;
 
+use core::iterator::IteratorUtil;
 use core::managed;
 use core::old_iter;
 use core::vec;
@@ -110,7 +111,7 @@ pub fn from_elem<T>(data: T) -> @mut DList<T> {
 
 /// Creates a new dlist from a vector of elements, maintaining the same order
 pub fn from_vec<T:Copy>(vec: &[T]) -> @mut DList<T> {
-    do vec::foldl(DList(), vec) |list,data| {
+    do vec.iter().fold(DList()) |list,data| {
         list.push(*data); // Iterating left-to-right -- add newly to the tail.
         list
     }
diff --git a/src/libextra/list.rs b/src/libextra/list.rs
index 7a38be8944f..0d0b5ea00f0 100644
--- a/src/libextra/list.rs
+++ b/src/libextra/list.rs
@@ -12,7 +12,7 @@
 
 use core::prelude::*;
 
-use core::vec;
+use core::iterator::IteratorUtil;
 
 #[deriving(Eq)]
 pub enum List<T> {
@@ -28,7 +28,7 @@ pub enum MutList<T> {
 
 /// Create a list from a vector
 pub fn from_vec<T:Copy>(v: &[T]) -> @List<T> {
-    vec::foldr(v, @Nil::<T>, |h, t| @Cons(*h, t))
+    v.rev_iter().fold(@Nil::<T>, |t, h| @Cons(*h, t))
 }
 
 /**
diff --git a/src/libextra/stats.rs b/src/libextra/stats.rs
index d224777ded7..0cc1ee9a1d7 100644
--- a/src/libextra/stats.rs
+++ b/src/libextra/stats.rs
@@ -12,6 +12,7 @@
 
 use core::prelude::*;
 
+use core::iterator::*;
 use core::vec;
 use core::f64;
 use core::cmp;
@@ -36,17 +37,17 @@ pub trait Stats {
 
 impl<'self> Stats for &'self [f64] {
     fn sum(self) -> f64 {
-        vec::foldl(0.0, self, |p,q| p + *q)
+        self.iter().fold(0.0, |p,q| p + *q)
     }
 
     fn min(self) -> f64 {
         assert!(self.len() != 0);
-        vec::foldl(self[0], self, |p,q| cmp::min(p, *q))
+        self.iter().fold(self[0], |p,q| cmp::min(p, *q))
     }
 
     fn max(self) -> f64 {
         assert!(self.len() != 0);
-        vec::foldl(self[0], self, |p,q| cmp::max(p, *q))
+        self.iter().fold(self[0], |p,q| cmp::max(p, *q))
     }
 
     fn mean(self) -> f64 {