2. @mordonez_me
Marco Ordoñez
Apasionado de las nuevas tecnologías.
Usuario de las tecnologías de Scala desde hace ~3 años.
Fundador de la empresa Evolbit (www.evolbit.net).
Promotor del uso de los principios reactivos en el desarrollo de Software.
4. Perú users group
Los paradigmas de programación más populares son:
Programación orientada a objetos: Imperativa, permite la construcción de programas a través de
objetos y trae consigo técnicas como polimorfismo, encapsulación entre otras.
Programación funcional: Declarativa, está basada en la premisa de construir programas utilizando
funciones puras.
Paradigmas de programación
Paradigmas de programación
5. Perú users group
Paradigmas de programación
La programación funcional nos permite razonar sobre la solución de un problema utilizando solo
funciones puras, esto quiere decir que no tiene efectos secundarios.
¿Por qué la programación funcional?
¿Que son efectos secundarios?
Podemos decir que una función tiene un efecto secundario si esa función hace otra cosa que no sea
devolver un valor, por ejemplo: modificar una variable, modificar la propiedad de un objeto, dar
una excepción, mostrar mensajes en la consola, leer y escribir en el disco entre otros.
¿Por qué me deben de importar los efectos secundarios?
Porque al tener efectos secundarios el orden de evaluación importa.
7. Perú users group
Instalando las herramientas: ACTIVATOR
Paso 1: Tener instalado JRE 1.8
Paso 2: Descargar Activator (https://www.lightbend.com/activator/download)
Paso 3: Crear un nuevo proyecto con el comando “activator new”
Paso 4: Empezar a programar!
9. Perú users group
Empieza la transformación, vamos funcional!
Primero, familiaricémonos con la inmutabilidad, en Scala la inmutabilidad en valores se representa
con val.
Las colecciones son inmutables también, por ejemplo:
10. Perú users group
Empieza la transformación, vamos funcional!
Las propiedades de las clases también son inmutables
11. Perú users group
Empieza la transformación, vamos funcional!
Ahora familiaricémonos con las funciones, las funciones son ciudadanos de primera clase en Scala,
lo que significa que pueden ser usadas de cualquier forma, por ejemplo: ser asignadas, ser
parametros, ser devueltas por otras funciones.
12. Perú users group
Empieza la transformación, vamos funcional!
Podemos decir que una función es pura si es transparentemente referencial.
En un programa, una expresión E del lenguaje puede ser sustituida por otra de igual valor V,
resultando en un programa cuya semántica no va a diferir de la del original.
ejemploEfectoSecundario2 no es transparentemente referencial porque el resultado que devuelve
no es siempre Cafe ya que la función cobra en la clase CreditCard puede dar una excepción.
13. Perú users group
Empieza la transformación, vamos funcional!
Ahora hagamos un ejemplo:
Creemos una clase Participante, luego creemos una lista de Participantes de diferentes ciudades y
luego mostremos a todos los participantes de Lima.