Rust に reduce は、あります
   1 min read

ググっていると、ちょくちょく 「Rust に reduce は無い、代わりに fold を使え」という話が出てくるのが疑問だったのですが、 reduce が導入されたのって 1.51.0(2021-03-25)と、比較的最近だからなんですね。

しかしリリースノートを見てもこういう変更は載っていないのですね。 細かすぎるから? 気付いてない人は気付かないまま過ごしてそう…

fn main() {
    let v = vec![1, 2, 3, 4, 5];
    let sum = v.into_iter().reduce(|x, y| x + y).unwrap();
    println!("{}", sum); // 15

    // 要素1個
    let v = vec![1];
    let sum = v.into_iter().reduce(|x, y| x + y).unwrap();
    println!("{}", sum); // 1

    // 要素無し
    let v = vec![0; 0];
    let sum = v.into_iter().reduce(|x, y| x + y);
    println!("{:?}", sum); // None
}