diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2013-06-08 15:12:39 +1000 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2013-06-09 02:22:23 +1000 |
| commit | ed299af62566a9f0f285e81408aab5f7680ab4cc (patch) | |
| tree | 39d540d5fa2b0aee7b88859e1644668a96b67be2 /src/libextra | |
| parent | 65c7c58c8f15189d2e4ca6b166e933c5fe2d0691 (diff) | |
| download | rust-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.rs | 3 | ||||
| -rw-r--r-- | src/libextra/list.rs | 4 | ||||
| -rw-r--r-- | src/libextra/stats.rs | 7 |
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 { |
