Lazy evaluation postpones computing an expression until its result is needed. In Rust, iterator methods such as map() can return another iterator without computing the transformed values; collect() forces evaluation. section 3.2.5
let arr = [1, 2, 3, 4];
println!("{:?}", arr);
let vec: Vec<_> = arr.iter().map(|v| v.to_string()).collect();
println!("{:?}", vec);
This iterator maps each array value to a string; collect() evaluates the transformation and builds a vector. section 3.2.5












