map is lazy that can cause problems
examples/vectors/map1/src/main.rs
fn main() { let chars = vec!['a', 'b', 'c']; let mut c = 0; let pairs = chars.into_iter().map(|letter| { c += 1; (letter, c) }); for pair in pairs { println!("{pair:?}"); } }
('a', 1) ('b', 2) ('c', 3)
examples/vectors/map2/src/main.rs
fn main() { let chars = vec!['a', 'b', 'c']; let mut c = 0; let pairs = chars.into_iter().rev().map(|letter| { c += 1; (letter, c) }); for pair in pairs { println!("{pair:?}"); } }
('c', 1) ('b', 2) ('a', 3)
examples/vectors/map3/src/main.rs
// However this is also the same fn main() { let chars = vec!['a', 'b', 'c']; let mut c = 0; let pairs = chars.into_iter().map(|letter| { c += 1; (letter, c) }).rev(); for pair in pairs { println!("{pair:?}"); } }
('c', 1) ('b', 2) ('a', 3)