Programación Funcional: Funciones Puras e Inmutabilidad
Clase 9 de 47 • Curso Básico de Kotlin 2019
Contenido del curso
Conceptos básicos
- 4

Variables vs. Objetos
05:25 min - 5

Operadores en Kotlin
07:09 min - 6

Otros Operadores en Kotlin
01:17 min - 7

Tipos de variables: var, val y const
05:35 min - 8

Ejercicio var val const
13:30 min - 9

Programación Funcional: Funciones Puras e Inmutabilidad
Viendo ahora - 10

Strings
10:47 min - 11

Conversión de tipos de datos
00:43 min - 12

Rangos
05:47 min - 13

If y when en Kotlin
09:13 min - 14

Bucles while y do while
10:57 min - 15

Ciclos for y foreach en Kotlin
01:08 min - 16

Break, Continue y Labels
04:24 min - 17

Valores Nulos y Double Bang
11:05 min - 18

Operador Elvis
03:50 min - 19

Ejercicios con Null Safety y operador Elvis
11:26 min - 20

Reto 1
00:47 min
Conceptos avanzados
Programación Orientada a Objetos
- 29

Clases
06:25 min - 30

Ejercicio de clases
10:04 min - 31

Modificadores de acceso
11:13 min - 32

Getters y Setters
08:37 min - 33

El Get() y Set() propio de Kotlin
12:35 min - 34

Data class en Kotlin
08:49 min - 35

Método Constructor
08:42 min - 36

Herencia y polimorfismo
11:27 min - 37

Aplicando herencia y polimorfismo
15:53 min - 38

Clases abstractas
08:07 min - 39

Interfaces
11:15 min - 40

Reto 3
00:39 min
Programación Funcional
Bonus
Comencemos nuestro primer encuentro con la programación funcional. Primero entendamos qué es.
Como primera declaración debemos decir que la programación funcional es un paradigma de programación, esto significa, literalmente, un estilo de resolver problemas para plasmar la solución con código. Cuando escuchas la palabra paradigma probablemente lo primero que viene a tu mente es el Orientado a Objetos, y sí, precisamente ese es otro estilo de resolución de problemas. Programar de manera funcional significa que lo haremos de forma declarativa, es decir nos preocuparemos más por el qué que por el cómo.
Este estilo de programación tiene que ver con usar funciones todo el tiempo, podemos usarlas como parámetros de otras funciones e incluso asignarlas a variables. En este paradigma casi todo lo que habíamos aprendido sobre programación dejaremos de usarlo. Nos olvidaremos de usar variables como algo que puede cambiar, en su lugar creeremos en la inmutabilidad. Los bucles for, while, do while, etc. dejarán de existir pues ahora tendremos recursividad, además que, como ya dijimos, las funciones serán tan especiales que estas deberán ser funciones puras por definición.
Funciones Puras
Una función pura, deberá cumplir con dos cosas específicamente.
Primero. Dados los mismos parámetros de entrada la función debe retornar siempre el mismo valor.
Segundo. La función no debe tener efectos colaterales, es decir no debe haber nada en el entorno que la altere. Como por ejemplo, variables globales que fue el ejemplo que vimos en la clase anterior.
Inmutabilidad
Hablando de variables, hace un momento te comenté que estas las dejaremos de tratar como tal y fomentaremos el uso de variables de tipo constante, o variables inmutables.
La inmutabilidad es uno de los principios de la programación funcional donde nos promueve la ausencia de estado mutable o también conocido como Stateless, para entender esto mejor lo primero que debemos comprender es qué cosa se considera estado.
Estado: será cualquier dato que se pueda guardar y modificar posteriormente en memoria
- Una variable
- Un archivo
- Un socket
Para el caso de las variables en Kotlin preferirémos declararlas como ´val´ en vez de ´var´. Una buena práctica en nuestros programas es nunca tener variables de tipo ´var´ declaradas de manera global pues estas van en contra de la inmutabilidad, aunque sé que a veces es complicado prescindir de ellas en el resto del programa. Su mejor lugar es cuando están declaradas de manera local al método.
A lo largo del curso seguiremos aprendiendo pequeñas píldoras de conocimiento sobre la programación funcional.