#iterator #fold #value #initial #fn

已弃用 reduce

没有初始值地折叠迭代器

6 个发布版本

0.1.5+已弃用2022 年 12 月 19 日
0.1.4 2020 年 12 月 27 日
0.1.3 2020 年 6 月 16 日
0.1.2 2019 年 5 月 21 日
0.1.1 2016 年 6 月 19 日

#17#fold

Download history 164/week @ 2024-03-11 203/week @ 2024-03-18 167/week @ 2024-03-25 328/week @ 2024-04-01 178/week @ 2024-04-08 198/week @ 2024-04-15 170/week @ 2024-04-22 134/week @ 2024-04-29 296/week @ 2024-05-06 120/week @ 2024-05-13 242/week @ 2024-05-20 158/week @ 2024-05-27 153/week @ 2024-06-03 122/week @ 2024-06-10 140/week @ 2024-06-17 116/week @ 2024-06-24

每月 552 次下载
用于 9 个 crate (7 直接)

MIT/Apache

8KB

iter.reduce(fn)

github crates.io docs.rs build status

此 crate 为迭代器提供了一个类似 fold 但没有初始值的 reduce 函数。如果迭代器为空,则函数返回 None,否则返回 Some(value)。这与 Scala 中的 reducefold 之间的区别相匹配。

[dependencies]
reduce = "0.1"

示例

use reduce::Reduce;

fn main() {
    // Reduce a non-empty iterator into Some(value)
    let v = vec![1usize, 2, 3, 4, 5];
    let sum = v.into_iter().reduce(|a, b| a + b);
    assert_eq!(Some(15), sum);

    // Reduce an empty iterator into None
    let v = Vec::<usize>::new();
    let sum = v.into_iter().reduce(|a, b| a + b);
    assert_eq!(None, sum);
}

许可

根据您的选择,在 Apache 许可证,版本 2.0MIT 许可证 下许可。
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在此 crate 中的任何贡献,都将按照上述方式双许可,没有任何附加条款或条件。

无运行时依赖