Function transducers::transduce [] [src]

pub fn transduce<'t, 'i, T: 't, U, I: Iterator<Item = U>, Step: Fn(Vec<T>, U) -> Vec<T>, Trans: Transducer<'t, Vec<T>, T, U, Step = Step>>(
    iter: &'i mut I,
    trans: Trans
) -> Vec<T> where
    Trans::Step: 't, 

Transduces the iterator iter with the transducer trans.

This is an alternative to methods like map and filter in the standard library.

let v = vec!(2i32, 3, 5, 7, 11);
let f = |&x| x * 2;
let v_trans = transduce(&mut v.iter(), Mapping::new(&f));
let v_map: Vec<i32> = v.iter().map(f).collect();
assert_eq!(v_trans, v_map);