bim

iterator chain

// Chaining iterators for functional-style data processing

fn main() {
    let numbers = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

    let result: Vec<i32> = numbers
        .iter()
        .filter(|&n| n % 2 == 0)    // Keep even numbers
        .map(|n| n * n)              // Square them
        .filter(|&n| n > 10)         // Keep those > 10
        .collect();

    println!("{:?}", result); // [16, 36, 64, 100]

    // Sum with fold
    let sum: i32 = numbers.iter().fold(0, |acc, x| acc + x);
    println!("Sum: {}", sum); // 55
}