mirror of
https://github.com/nelsbrock/iter_accumulate.git
synced 2026-08-14 22:16:48 +02:00
add README.md
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
# 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);
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user