[Haskell的iterate
函数反复将函数应用于值以生成一系列值。例如,将(^ 2)应用于2会生成2、2 ^ 2、2 ^ 2 ^ 2、2 ^ 2 ^ 2 ^ 2,...(2、4、16、256,...)
Rust中是否有一个等价物?
iterate
似乎就是您想要的。
从use itertools::iterate;
itertools::assert_equal(iterate(1, |&i| i * 3).take(5), vec![1, 3, 9, 27, 81]);
开始,您可以使用itertools::iterate
因此,对于此问题,您将执行以下操作:
itertools::iterate
Rust 1.34
也请看std::iter::successors
,它可能会更强大。