Introducción a la Programación Funcional en Javascript

Camilo Orrego

Twitter: @acornssn

Github: baldore

Debería aprender programación funcional porque...

Abre la mente a una forma diferente de solucionar problemas

Te ayuda a escribir código mas simple, sólido y sostenible

Te vas a ver como un Popstar!

Pero te puedes sentir como un Noob... al menos inicialmente

Empecemos carajo!

Instalando el repo...

> git clone git@github.com:baldore/fp-introduction.git
> cd fp-introduction
> npm i

Funciones

Funciones Puras

Son funciones que, dados ciertos argumentos, devuelven siempre el mismo resultado.

F(x)

1

7

2

6

2

6

6

13

Ventajas

  • Memoizable
  • Fácil de testear
  • Reusable

Funciones Impuras

Son funciones que pueden devolver diferentes valores dados los mismos argumentos.

Funciones como "First Class Citizens"

En javascript, las funciones pueden ser pasadas como argumentos a otras funciones.

Funciones de Alto Orden

También conocidas como "Higher-order functions". Pueden recibir funciones como argumentos y devolver otras funciones.

f(x)

1

1

2

4

3

9

5

25

f(x) = x^2
f(x)=x2f(x) = x^2

[1, 2, 3, 5]

[1, 4, 9, 25]

MAP

Aplicación Parcial

Cada vez que una función es llamada con un argumento, devuelve una nueva función. Cuando la función recibe todos los argumentos, es llamada.

f(x, y , z) = f(x)(y)(z)
f(x,y,z)=f(x)(y)(z)f(x, y , z) = f(x)(y)(z)

Composición!!!!

Con composición, se pueden crear funciones más complejas con pequeños bloques.

(g . f )(x) = g( f(x))
(g.f)(x)=g(f(x))(g . f )(x) = g( f(x))

y... qué más?

Fantasy Land

Elm

Ramda.js

Resources

Introducción a la Programación Funcional en Javascript

By Andres Camilo Orrego Restrepo

Introducción a la Programación Funcional en Javascript

  • 741