Swift Academy · Lección

Funciones puras y diseño sin efectos secundarios

Escriba funciones que devuelvan siempre el mismo resultado para la misma entrada.

Lección 1 de 412 pasos

Funciones puras y diseño sin efectos secundarios es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 4. 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 4 lecciones en total.

Introducción

Las funciones puras siempre producen la misma salida para la misma entrada y no provocan efectos secundarios. Son el componente fundamental de la programación funcional en Swift.

Definición de una función pura

Una función es pura si: • La misma entrada siempre produce la misma salida • No tiene efectos secundarios observables (no modifica datos ni realiza E/S, y no usa estado global) ```swift func add(_ a: Int, _ b: Int) -> Int { a + b } // pure ```

Ejemplo de función impura

```swift var total = 0 func addToTotal(_ n: Int) { total += n } // impure — mutates global ``` Llamar a esta función dos veces con `5` produce resultados diferentes si se llama en contextos distintos.

Transparencia referencial

Una llamada a una función pura puede sustituirse por su resultado sin cambiar el comportamiento del programa: ```swift let result = add(2, 3) // same as writing 5 ```

Ventajas de las funciones puras

• Fáciles de probar: no requieren configuración ni limpieza • Seguras para ejecutarse en paralelo: no tienen estado compartido • Componibles: se pueden encadenar sin preocuparse por los efectos secundarios • Almacenables en caché: la memoización es segura

Los tipos de valor de Swift favorecen la pureza

Como los métodos de las estructuras reciben copias, tienden naturalmente a la pureza: ```swift struct Vector { var x, y: Double } func scaled(_ v: Vector, by f: Double) -> Vector { Vector(x:v.x*f, y:v.y*f) } ```

Aislar los efectos secundarios

Lleve los efectos secundarios al límite de su sistema: ```swift // Pure core logic: func processOrders(_ orders: [Order]) -> Invoice { ... } // Impure at the edge: func run() { let inv = processOrders(load()); save(inv) } ```

Funciones puras y pruebas

```swift func test() { let result = add(2, 3) assert(result == 5) // no mocks needed! } ``` Las funciones puras no necesitan objetos mock: basta con llamarlas y comprobar el resultado.

Ejemplo del mundo real

```swift func discountedPrice(base: Double, discount: Double) -> Double { base * (1 - discount) } let final = discountedPrice(base: 100, discount: 0.2) // 80.0 ```

Componer funciones puras

```swift func double(_ n: Int) -> Int { n * 2 } func addOne(_ n: Int) -> Int { n + 1 } let transform: (Int) -> Int = { addOne(double($0)) } print(transform(5)) // 11 ```

Comprobación rápida

¿Qué propiedad hace que una función sea fácil de probar sin objetos mock?

Resumen

Puntos clave: • Pura: misma entrada → misma salida, sin efectos secundarios • La transparencia referencial permite sustituir llamadas por sus resultados • Lleve los efectos secundarios a los límites del sistema • Las funciones puras se pueden probar y ejecutar en paralelo fácilmente Siguiente tema: funciones de orden superior.
Gratis para empezar

Aprende Swift con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
122
Lecciones
409

Preguntas frecuentes

¿La lección «Funciones puras y diseño sin efectos secundarios» es gratis?

Sí — el texto completo de «Funciones puras y diseño sin efectos secundarios» 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 4 lecciones en total.

¿Qué aprenderé en «Funciones puras y diseño sin efectos secundarios»?

Escriba funciones que devuelvan siempre el mismo resultado para la misma entrada. 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 1 de 4.

¿Cuánto tiempo toma la lección «Funciones puras y diseño sin efectos secundarios»?

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. Funciones puras y diseño sin efectos secundarios
  2. Funciones de orden superior: map, flatMap, compactMap
  3. Composición de funciones y pipelines
  4. Secuencias lazy para mejorar la eficiencia
← Volver a Swift Academy