typestar

map, filter, reduce en Swift

El trío funcional, más compactMap para los fallos.

let legTimes = [512.0, 448.5, 630.0, 505.25]

// map transforms, filter keeps, reduce folds.
let minutes = legTimes.map { $0 / 60 }
print(minutes)

let quickLegs = legTimes.filter { $0 < 520 }
print("Quick legs: \(quickLegs.count)")

let total = legTimes.reduce(0, +)
print("Race time: \(total) s")

// compactMap drops the misses while transforming.
let logged = ["512", "n/a", "448"]
let parsed = logged.compactMap { Double($0) }
print("Parsed \(parsed.count) of \(logged.count)")

Cómo funciona

  1. map transforma cada elemento en un arreglo nuevo.
  2. filter conserva por predicado; reduce(0, +) pliega.
  3. compactMap { Double($0) } transforma y suelta los nil.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
482
Tokens
119
Ritmo de tres estrellas
70 tpm

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

Escribe este fragmento

Paso 3 de 3 en Funciones y clausuras; paso 9 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

map, filter, reduce en otros lenguajes