iter.reduce(fn)

Build Status Latest Version Rust Documentation

This crate gives Iterators a reduce function that is similar to fold but without an initial value. The function returns None if the iterator is empty and Some(value) otherwise. This matches the distinction between reduce and fold in Scala.

toml [dependencies] reduce = "0.1"

Examples

```rust use reduce::Reduce;

fn main() { // Reduce a non-empty iterator into Some(value) let v = vec![1usize, 2, 3, 4, 5]; let sum = v.intoiter().reduce(|a, b| a + b); asserteq!(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);

} ```


License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.