Files
iter_accumulate/README.md
T
2022-08-06 21:45:08 +02:00

24 lines
783 B
Markdown

# iter_accumulate
An iterator adaptor for Rust that accumulates the elements from the base iterator
using the provided closure.
This is similar to `fold()`, but instead of returning the final accumulated result, it returns an
iterator that yields the current accumulated value for each iteration. In other words, the last
element yielded by `accumulate()` is what would have been returned by `fold()` if it was used
instead.
## Example
```rust
use iter_accumulate::IterAccumulate;
let input = [1, 2, 3, 4, 5];
let mut iter = input.iter().accumulate(1, |acc, i| acc * i);
assert_eq!(iter.next(), Some(1));
assert_eq!(iter.next(), Some(2));
assert_eq!(iter.next(), Some(6));
assert_eq!(iter.next(), Some(24));
assert_eq!(iter.next(), Some(120));
assert_eq!(iter.next(), None);
```