Introduccion a la programacion funcional en Python

Abstracto

En esta charla veremos los conceptos básicos de la programación funcional (funciones puras, funciones como “first class citizen”, funciones de orden superior e inmutabilidad) y cómo aplicarlos en un lenguaje de programación que fue concebido con el paradigma orientado a objetos como lo es Python.

Descripción

La programación funcional es un paradigma donde el método principal de computación es la evaluación de funciones puras. A pesar de que Python no fue concebido como un lenguaje funcional, es bueno estar familiarizado con conceptos como funciones de orden superior (e.g. map, filter, reduce) ya que nos pueden ayudar a escribir código más robusto y evitar errores que generalmente ocurren cuando programamos de manera imperativa.

Debido al diseño de Python, el cual es orientado a objetos, el código que encontramos en distintos proyectos suele ser imperativo y generalmente incluye mutaciones de objetos y efectos secundarios. En esta charla hablaremos de conceptos básicos de la programación funcional, cómo aplicarlos en Python y cómo pueden ayudarnos a escribir programas más robustos, menos propensos a errores.

Para finalizar, veremos cómo escribir pruebas con un concepto tomado de la programación funcional como es “property testing” para esto haremos uso de las librerías pytest y Hypothesis.