/// // each iteration, we'll multiply the state by the element
/// *state = *state * x;
///
- /// // the value passed on to the next iteration
- /// Some(*state)
+ /// // then, we'll yield the negation of the state
+ /// Some(-*state)
/// });
///
- /// assert_eq!(iter.next(), Some(1));
- /// assert_eq!(iter.next(), Some(2));
- /// assert_eq!(iter.next(), Some(6));
+ /// assert_eq!(iter.next(), Some(-1));
+ /// assert_eq!(iter.next(), Some(-2));
+ /// assert_eq!(iter.next(), Some(-6));
/// assert_eq!(iter.next(), None);
/// ```
#[inline]
/// assert_eq!(merged, "alphabetagamma");
/// ```
///
- /// You can also rewrite this in terms of [`flat_map()`] which is preferable
- /// in this case since that conveys intent clearer:
+ /// You can also rewrite this in terms of [`flat_map()`], which is preferable
+ /// in this case since it conveys intent more clearly:
///
/// ```
/// let words = ["alpha", "beta", "gamma"];
///
/// // this iterator sequence is complex.
/// let sum = a.iter()
- /// .cloned()
- /// .filter(|&x| x % 2 == 0)
- /// .fold(0, |sum, i| sum + i);
+ /// .cloned()
+ /// .filter(|x| x % 2 == 0)
+ /// .fold(0, |sum, i| sum + i);
///
/// println!("{}", sum);
///
/// // let's add some inspect() calls to investigate what's happening
/// let sum = a.iter()
- /// .cloned()
- /// .inspect(|x| println!("about to filter: {}", x))
- /// .filter(|&x| x % 2 == 0)
- /// .inspect(|x| println!("made it through filter: {}", x))
- /// .fold(0, |sum, i| sum + i);
+ /// .cloned()
+ /// .inspect(|x| println!("about to filter: {}", x))
+ /// .filter(|x| x % 2 == 0)
+ /// .inspect(|x| println!("made it through filter: {}", x))
+ /// .fold(0, |sum, i| sum + i);
///
/// println!("{}", sum);
/// ```
/// This will print:
///
/// ```text
+ /// 6
/// about to filter: 1
/// about to filter: 4
/// made it through filter: 4
///
/// let iter = a.into_iter();
///
- /// let sum: i32 = iter.take(5)
- /// .fold(0, |acc, &i| acc + i );
+ /// let sum: i32 = iter.take(5).fold(0, |acc, i| acc + i );
///
/// assert_eq!(sum, 6);
///
/// let mut iter = a.into_iter();
///
/// // instead, we add in a .by_ref()
- /// let sum: i32 = iter.by_ref()
- /// .take(2)
- /// .fold(0, |acc, &i| acc + i );
+ /// let sum: i32 = iter.by_ref().take(2).fold(0, |acc, i| acc + i );
///
/// assert_eq!(sum, 3);
///
///
/// let a = [1, 2, 3];
///
- /// let doubled: VecDeque<i32> = a.iter()
- /// .map(|&x| x * 2)
- /// .collect();
+ /// let doubled: VecDeque<i32> = a.iter().map(|&x| x * 2).collect();
///
/// assert_eq!(2, doubled[0]);
/// assert_eq!(4, doubled[1]);
/// ```
/// let a = [1, 2, 3];
///
- /// let doubled = a.iter()
- /// .map(|&x| x * 2)
- /// .collect::<Vec<i32>>();
+ /// let doubled = a.iter().map(|x| x * 2).collect::<Vec<i32>>();
///
/// assert_eq!(vec![2, 4, 6], doubled);
/// ```
/// ```
/// let a = [1, 2, 3];
///
- /// let doubled = a.iter()
- /// .map(|&x| x * 2)
- /// .collect::<Vec<_>>();
+ /// let doubled = a.iter().map(|x| x * 2).collect::<Vec<_>>();
///
/// assert_eq!(vec![2, 4, 6], doubled);
/// ```
/// let chars = ['g', 'd', 'k', 'k', 'n'];
///
/// let hello: String = chars.iter()
- /// .map(|&x| x as u8)
- /// .map(|x| (x + 1) as char)
- /// .collect();
+ /// .map(|&x| x as u8)
+ /// .map(|x| (x + 1) as char)
+ /// .collect();
///
/// assert_eq!("hello", hello);
/// ```
/// ```
/// let a = [1, 2, 3];
///
- /// let (even, odd): (Vec<i32>, Vec<i32>) = a.into_iter()
- /// .partition(|&n| n % 2 == 0);
+ /// let (even, odd): (Vec<i32>, Vec<i32>) = a
+ /// .into_iter()
+ /// .partition(|&n| n % 2 == 0);
///
/// assert_eq!(even, vec![2]);
/// assert_eq!(odd, vec![1, 3]);
/// let a = [1, 2, 3];
///
/// // the checked sum of all of the elements of the array
- /// let sum = a.iter()
- /// .try_fold(0i8, |acc, &x| acc.checked_add(x));
+ /// let sum = a.iter().try_fold(0i8, |acc, &x| acc.checked_add(x));
///
/// assert_eq!(sum, Some(6));
/// ```
/// let a = [1, 2, 3];
///
/// // the sum of all of the elements of the array
- /// let sum = a.iter()
- /// .fold(0, |acc, &x| acc + x);
+ /// let sum = a.iter().fold(0, |acc, x| acc + x);
///
/// assert_eq!(sum, 6);
/// ```