是否有相当于Rust中Haskell的迭代?

2 rust

Haskell iterate函数重复将函数应用于值以生成一系列值.例如,将(^ 2)应用于2会生成2,2 ^ 2,2 ^ 2 ^ 2,2 ^ 2 ^ 2 ^ 2,......(2,4,16,256,...)

Rust中有等价物吗?

Sir*_*ius 5

这在标准库中不存在,但是itertools包有iterate

创建一个新的迭代器,它可以无限地将函数应用于值并产生结果.

use itertools::iterate;

itertools::assert_equal(iterate(1, |&i| i * 3).take(5), vec![1, 3, 9, 27, 81]);
Run Code Online (Sandbox Code Playgroud)