typestar

fold y reduce en Rust

Plegar un iterador en un único valor acumulado.

fn main() {
    let nums = vec![1, 2, 3, 4, 5];

    let product = nums.iter().fold(1, |acc, &n| acc * n);
    let sum_sq: i32 = nums.iter().map(|&n| n * n).sum();
    let first_two: Vec<_> = nums.iter().take(2).collect();
    let any_big = nums.iter().any(|&n| n > 4);
    println!("{product} {sum_sq} {} {any_big}", first_two.len());
}

Cómo funciona

  1. fold pasa un acumulador a través de los elementos.
  2. map(...).sum() es un fold especializado muy común.
  3. take y any son otros finalizadores de iteradores.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
9
Caracteres a escribir
313
Tokens
128
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 77 segundos.

Escribe este fragmento

Paso 2 de 3 en Closures y fold; paso 7 de 14 en Iteradores y closures.

← Anterior Siguiente →