rust - 是否有等同于 Haskell 在 Rust 中迭代的东西?

标签 rust

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

Rust 中是否有等效项?

最佳答案

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

Creates a new iterator that infinitely applies function to value and yields results.

use itertools::iterate;

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

关于rust - 是否有等同于 Haskell 在 Rust 中迭代的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54810871/

相关文章:

rust - 如何让函数返回具有相同项目类型的两个迭代器之一?

rust - Rust 中的盒装函数工厂(高阶函数)导致 "call expression requires function"

encoding - 将字符串转换为 base64

rust - 在 Rust 中指定数组大小时,C 的 #define 等效于什么?

rust - 为什么通过指向移动变量的指针写入在 Rust 中没有被确定为 UB?

rust - 如何将 *const 指针转换为 Vec 以正确删除它?

arrays - 如何在 Rust 中将一串数字转换为数组或整数向量?

rust - 如何使用Rust fltk表示例绘制自己的字符串数组?

rust - 将 Option<Box<[Box<[JsValue]>]>> 从 Rust fn 返回到 Wasm 的替代方法

代理后使用rust , "error: no default toolchain configured"