// Created on savesnippets.com · https://savesnippets.com/QgwE6u5qrCeIg8 fn main() { let nums = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let squares_of_evens: Vec = nums.iter() .filter(|&&n| n % 2 == 0) .map(|&n| n * n) .collect(); println!("{:?}", squares_of_evens); // [4, 16, 36, 64, 100] // collect can produce different containers let as_strings: Vec = nums.iter().map(|n| n.to_string()).collect(); println!("{:?}", as_strings); // sum / product / count are eager terminators let sum: i32 = nums.iter().sum(); let product: i64 = nums.iter().map(|&n| n as i64).product(); println!("sum={sum} product={product}"); // chunked aggregates: sum of squares let s: i64 = (1..=100).map(|n: i64| n * n).sum(); println!("Σ(1..=100)² = {s}"); // 338350 }