diff options
| author | Steve Klabnik <steve@steveklabnik.com> | 2015-12-30 09:24:24 -0500 |
|---|---|---|
| committer | Steve Klabnik <steve@steveklabnik.com> | 2015-12-30 09:24:24 -0500 |
| commit | d1f854ab771b7fc9beb057989ca2a17c2522c2ac (patch) | |
| tree | 327220f116af3589ba3d5705499618c706d58306 | |
| parent | 176ee349a704a1aee9dfb79c27c5da20db7942a5 (diff) | |
| parent | 5538c6b19837a418e73aebda6ad18ae90d52b8d7 (diff) | |
| download | rust-d1f854ab771b7fc9beb057989ca2a17c2522c2ac.tar.gz rust-d1f854ab771b7fc9beb057989ca2a17c2522c2ac.zip | |
Rollup merge of #30373 - ChrisBuchholz:master, r=steveklabnik
The current explanation for scan() is not very clear as to how it works, especially when it compares itself to fold(). I believe these changes makes it all a bit more clear for the reader, and makes it easier to understand the example code. r? @steveklabnik
| -rw-r--r-- | src/libcore/iter.rs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index 526c2e1c6b5..6f052f964c6 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -1113,16 +1113,22 @@ pub trait Iterator { Take{iter: self, n: n} } - /// An iterator similar to `fold()`, with internal state. - /// - /// `scan()` accumulates a final value, similar to [`fold()`], but instead - /// of passing along an accumulator, it maintains the accumulator internally. + /// An iterator adaptor similar to [`fold()`] that holds internal state and + /// produces a new iterator. /// /// [`fold()`]: #method.fold /// - /// On each iteraton of `scan()`, you can assign to the internal state, and - /// a mutable reference to the state is passed as the first argument to the - /// closure, allowing you to modify it on each iteration. + /// `scan()` takes two arguments: an initial value which seeds the internal + /// state, and a closure with two arguments, the first being a mutable + /// reference to the internal state and the second an iterator element. + /// The closure can assign to the internal state to share state between + /// iterations. + /// + /// On iteration, the closure will be applied to each element of the + /// iterator and the return value from the closure, an [`Option`], is + /// yielded by the iterator. + /// + /// [`Option`]: ../option/enum.Option.html /// /// # Examples /// |
