Slug: iter-adapter-01 · Paired reading: Chapter 9
Prompt
Implement fn sum_evens_doubled(xs: &[i32]) -> i32 as an iterator pipeline:
keep even values, double them, sum. Do not allocate an intermediate Vec.
Contract
- Empty input →
0 - Negatives are fine (
-2is even) - Must be expressible as adapters + consumer (no manual
forrequired, but allowed if equivalent)
Predict first
Does xs.iter().filter(...).map(...) run before sum()? Why?
Rust angle
Adapters are lazy; work happens at the consumer. Interviewers probe whether you treat the chain as a snapshot or a borrow of xs.