pub fn mapr<'a,I,T,F>(x: I, f: F) -> Box<Iterator<Item=(f64,f64)>+'a>
where I: IntoIterator<Item=&'a T>+'a, F: Fn(f64)->f64 + 'a,
    T: Into<f64>+Copy+'a
{
    Box::new(x.into_iter().map(move |&x| { let fv = x.into(); (fv,f(fv))}))
}
/// map an iterator of references with a function producing point tuples.
/// Like `zip`, the reference type can be anything that converts to `f64`
map an iterator of references with a function producing point tuples.
Like `zip`, the reference type can be anything that converts to `f64`
map an iterator of references with a function producing point tuples . Like ` zip ` the reference type can be anything that converts to ` f64 `
pub fn mapr<'a,I,T,F>(x: I, f: F) -> Box<Iterator<Item=(f64,f64)>+'a>
where I: IntoIterator<Item=&'a T>+'a, F: Fn(f64)->f64 + 'a,
    T: Into<f64>+Copy+'a
{
    Box::new(x.into_iter().map(move |&x| { let fv = x.into(); (fv,f(fv))}))
}
pub fn mapr < ' a , I , T , F > ( x : I , f : F ) -> Box < Iterator < Item = ( f64 , f64 ) > + ' a > where I : IntoIterator < Item = & ' a T > + ' a , F : Fn ( f64 ) -> f64 + ' a , T : Into < f64 > + Copy + ' a { Box :: new ( x . into_iter ( ) . map ( move | & x | { let fv = x . into ( ) ; ( fv , f ( fv ) ) } ) ) }
map an iterator of references with a function producing point tuples.
map an iterator of references with a function producing point tuples .
x
I
f
F
x
I
f
F