Trait grabbag::iter::accumulate::AccumulateIterator
[−]
[src]
pub trait AccumulateIterator<E>: Iterator<Item=E> + Sized { fn accumulate<F: FnMut(E, E) -> E>(self, f: F) -> Accumulate<Self, E, F> { ... } }
( a0, a1, a2, ... ), ⊗ → ( a0, (a0 ⊗ a1), ((a0 ⊗ a1) ⊗ a2), ... )
Provided Methods
fn accumulate<F: FnMut(E, E) -> E>(self, f: F) -> Accumulate<Self, E, F>
Creates an iterator that scans from left to right over the input sequence, returning the accumulated result of calling the provided function on the entire sequence up to that point.
Example
let v = vec![0usize, 1, 2, 3, 4]; // `r` is the sequence of partial sums of `v`. let r: Vec<_> = v.into_iter().accumulate(|a,b| a+b).collect(); assert_eq!(r, vec![0, 1, 3, 6, 10]);