]> git.lizzy.rs Git - rust.git/commitdiff
Flip arguments to `std::iter::iterate`.
authorJonas Hietala <tradet.h@gmail.com>
Sun, 7 Sep 2014 17:06:13 +0000 (19:06 +0200)
committerJonas Hietala <tradet.h@gmail.com>
Sun, 7 Sep 2014 17:44:30 +0000 (19:44 +0200)
Breaks `iterate(f, seed)`, use `iterate(seed, f)` instead.
The convention is to have the closure last.

Closes #17066.

[breaking-change]

src/libcore/iter.rs
src/libcoretest/iter.rs

index da7f026aed4f5fd33c4fd03dc76724efd66f3700..89b2f9cc853b8cdc881f365ccc5bf4447aa5e731 100644 (file)
@@ -2185,7 +2185,7 @@ fn idx(&mut self, _: uint) -> Option<A> { Some(self.element.clone()) }
 /// Creates a new iterator that produces an infinite sequence of
 /// repeated applications of the given function `f`.
 #[allow(visible_private_types)]
-pub fn iterate<'a, T: Clone>(f: |T|: 'a -> T, seed: T) -> Iterate<'a, T> {
+pub fn iterate<'a, T: Clone>(seed: T, f: |T|: 'a -> T) -> Iterate<'a, T> {
     Unfold::new((f, Some(seed), true), |st| {
         let &(ref mut f, ref mut val, ref mut first) = st;
         if *first {
index 99ac7cfed027f744708c0f69a404710170d2a70b..9b703a18caee9f4e26bbcab7dda168e7f88b1cd8 100644 (file)
@@ -839,7 +839,7 @@ fn test_min_max_result() {
 
 #[test]
 fn test_iterate() {
-    let mut it = iterate(|x| x * 2, 1u);
+    let mut it = iterate(1u, |x| x * 2);
     assert_eq!(it.next(), Some(1u));
     assert_eq!(it.next(), Some(2u));
     assert_eq!(it.next(), Some(4u));