Closures and Functional Patterns
Closures are anonymous functions you can store in variables or pass as arguments.
Example
let add = |a, b| a + b;
println!("{}", add(2, 3));
Closures can capture their environment:
let x = 5;
let print_x = || println!("x is {}", x);
You can use closures with iterators for functional programming:
let numbers = vec![1, 2, 3];
let doubled: Vec = numbers.iter().map(|x| x * 2).collect();