std: Rename Unfoldr to Unfold.

The `r` is not relevant, since there is only one direction of folding
(unlike Haskell).
This commit is contained in:
Huon Wilson 2013-09-08 10:52:19 +10:00
parent b3d50fc2c0
commit 4c2b480aae
2 changed files with 8 additions and 8 deletions

View File

@ -1672,26 +1672,26 @@ for Inspect<'self, A, T> {
}
/// An iterator which just modifies the contained state throughout iteration.
pub struct Unfoldr<'self, A, St> {
pub struct Unfold<'self, A, St> {
priv f: &'self fn(&mut St) -> Option<A>,
/// Internal state that will be yielded on the next iteration
state: St
}
impl<'self, A, St> Unfoldr<'self, A, St> {
impl<'self, A, St> Unfold<'self, A, St> {
/// Creates a new iterator with the specified closure as the "iterator
/// function" and an initial state to eventually pass to the iterator
#[inline]
pub fn new<'a>(initial_state: St, f: &'a fn(&mut St) -> Option<A>)
-> Unfoldr<'a, A, St> {
Unfoldr {
-> Unfold<'a, A, St> {
Unfold {
f: f,
state: initial_state
}
}
}
impl<'self, A, St> Iterator<A> for Unfoldr<'self, A, St> {
impl<'self, A, St> Iterator<A> for Unfold<'self, A, St> {
#[inline]
fn next(&mut self) -> Option<A> {
(self.f)(&mut self.state)
@ -2213,7 +2213,7 @@ mod tests {
}
}
let mut it = Unfoldr::new(0, count);
let mut it = Unfold::new(0, count);
let mut i = 0;
for counted in it {
assert_eq!(counted, i);

View File

@ -10,7 +10,7 @@
use std::iterator::*;
// Unfoldr had a bug with 'self that mean it didn't work
// Unfold had a bug with 'self that mean it didn't work
// cross-crate
fn main() {
@ -24,7 +24,7 @@ fn main() {
}
}
let mut it = Unfoldr::new(0, count);
let mut it = Unfold::new(0, count);
let mut i = 0;
for counted in it {
assert_eq!(counted, i);