0Pricing
Swift Academy · Lección

Map/Filter/Reduce y secuencias lazy

Use map / filter / reduce para transformar, seleccionar y combinar; después añada .lazy para diferir el trabajo y evitar arrays intermedios.

Map/Filter/Reduce y secuencias lazy es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 3 lecciones en total.

Idea central

Algoritmos principales:

  • map: transforma cada elemento
  • filter: conserva los elementos que cumplen un predicado
  • reduce: combina los elementos en un único valor
  • .lazy: aplaza el trabajo para evitar arrays temporales

map

map transforma cada elemento y devuelve un array nuevo.

let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 }        // [2, 4, 6]
print(doubled)

let words = ["swift", "kit"]
let upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)

filter

filter conserva los elementos cuyo predicado devuelve true.

let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)

let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)

reduce

reduce pliega una secuencia en un único resultado utilizando un valor inicial y un closure de combinación.

let total = [1,2,3,4].reduce(0) { acc, x in acc + x }   // 10
print(total)

let joined = ["a","b","c"].reduce("") { $0 + $1 }             // "abc"
print(joined)

Trabajo diferido bajo demanda

.lazy crea una cadena de operaciones diferida: las operaciones se ejecutan a medida que consume los elementos (por ejemplo, mediante prefix, first o la iteración).

let range = 1...10
let lazyPipeline = range.lazy
    .map { x in print("map", x); return x * x }
    .filter { x in print("filter", x); return x % 2 == 0 }

// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.

Consejos

Consejos:

  • Encadene map → filter → reduce para obtener flujos de datos claros.
  • Añada .lazy cuando consuma solo una parte de la cadena o quiera evitar valores temporales.
  • Materialice con Array(...) únicamente cuando necesite un array concreto.

Semántica de lazy

Comprobación rápida: ¿Qué efecto tiene .lazy en una cadena de map/filter?

Resumen

Resumen: Utilice map para transformar, filter para seleccionar y reduce para combinar. Añada .lazy para evaluar bajo demanda y realizar menos asignaciones.

Preguntas frecuentes

¿La lección «Map/Filter/Reduce y secuencias lazy» es gratis?

Sí — el texto completo de «Map/Filter/Reduce y secuencias lazy» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 3 lecciones en total.

¿Qué aprenderé en «Map/Filter/Reduce y secuencias lazy»?

Use map / filter / reduce para transformar, seleccionar y combinar; después añada .lazy para diferir el trabajo y evitar arrays intermedios. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.

¿Cuánto tiempo toma la lección «Map/Filter/Reduce y secuencias lazy»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Jerarquías Sequence/Collection
  2. Map/Filter/Reduce y secuencias lazy
  3. Iteradores personalizados y consejos de rendimiento
← Volver a Swift Academy