typestar

map, filter, reduce en Julia

El trío funcional, más transformaciones dentro de los pliegues.

exposures = [120, 300, 90, 240, 60]

# map transforms, filter keeps, reduce folds.
minutes = map(s -> s / 60, exposures)
println(minutes)

long_subs = filter(s -> s >= 120, exposures)
println("Long subs: $long_subs")

total = reduce(+, exposures)
println("Total: $total s")

# sum, maximum and friends take a transform as first argument.
println("In minutes: ", sum(s -> s / 60, exposures))
println("Longest: ", maximum(exposures), " s")

Cómo funciona

  1. map y filter toman la función primero.
  2. reduce(+, xs) pliega con cualquier operación binaria.
  3. sum(f, xs) y maximum(xs) pliegan y transforman en una llamada.

El intento, en números

Líneas
15
Caracteres a escribir
437
Tokens
98
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 84 segundos.

Escribe este fragmento

Paso 2 de 3 en Broadcasting; paso 14 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

map, filter, reduce en otros lenguajes