Module 5Vectors & IteratorsLesson 2 of 822 min
Iterators: map, filter, collect
Transform price series without manual index soup.
Iterator adapters
rust
fn main() {
let xs = vec![1.0, -2.0, 3.0];
let doubled: Vec<f64> = xs.iter().map(|x| x * 2.0).collect();
let pos: Vec<_> = xs.iter().copied().filter(|x| *x > 0.0).collect();
println!("doubled={doubled:?}");
println!("pos={pos:?}");
}Output
doubled=[2.0, -4.0, 6.0]
pos=[1.0, 3.0]Why iterators?
Often as fast as hand loops (zero-cost) and clearer for quant pipelines.
sum
rust
let s: f64 = xs.iter().sum();Challenge
Map returns to bps (*10_000) and collect.
Tips
- copied() for Copy elements
- sum::<f64>() turbofish
- filter + collect allocates
Try it live
Iterators: map, filter, collectRust 2021
Loading editor…
Output
Press Run to compile and execute.