fn make_group<F>(func: F) -> Group
    where F: Fn(usize) -> usize
{
    let mut map = vec![vec![]; 100];
    let result = (1..).map(func)
                     .skip_while(|&x| x < 1000)
                     .take_while(|&x| x < 10000);

    for value in result {
        let (hd, tl) = (value / 100, value % 100);
        map[hd].push(tl)
    }

    map
}
/// `f` is expected to be a monotonically increasing function.
`f` is expected to be a monotonically increasing function.
` f ` is expected to be a monotonically increasing function .
fn make_group<F>(func: F) -> Group
    where F: Fn(usize) -> usize
{
    let mut map = vec![vec![]; 100];
    let result = (1..).map(func)
                     .skip_while(|&x| x < 1000)
                     .take_while(|&x| x < 10000);
    for value in result {
        let (hd, tl) = (value / 100, value % 100);
        map[hd].push(tl)
    }
    map
}
fn make_group < F > ( func : F ) -> Group where F : Fn ( usize ) -> usize { let mut map = vec ! [ vec [ ] 100 ] ; let result = ( 1 .. ) . map ( func ) . skip_while ( | & x | x < 1000 ) . take_while ( | & x | x < 10000 ) ; for value in result { let ( hd , tl ) = ( value / 100 , value % 100 ) ; map [ hd ] . push ( tl ) } map }
`f` is expected to be a monotonically increasing function.
` f ` is expected to be a monotonically increasing function .
func
F