purrr: otro dialecto para la programación funcional en R

Acaba de publicarse purrr. Es un paquete del universo Wickham que ofrece funciones para desarrollar otro dialecto funcional sobre R.

R es un lenguaje oportunista: ni del todo funcional, ni del todo orientado a objetos, ni del todo procedural. Es como es porque nació con un objetivo muy concreto y fue adoptando cosas de aquí y de allá como cuando uno recorre el supermercado. Merece la pena traer a colación cómo el primerísimo R (cuando era S), durante los ochenta, antes de adoptar la forma actual a través de los diversos libros de colores de Chambers y compañía, estaba fuertemente inspirado por Lisp.

R continúa teniendo importantes elementos funcionales: de siempre ha contado con funciones como apply y sus amigas. Existen incluso Reduce, Filter y otras habituales en lenguajes funcionales puros. Los paquetes plyr y dplyr abundan en los aspectos funcionales del lenguaje.

El paquete purrr nos trae nuevas funciones, tales como map (y algunos derivadas, como map_dbl o map_int) y zip, más azúcar sintáctico y motivos adicionales para que nos pasemos —aunque algunos nos resistamos— el feísimo operador %>%. Hay más información aquí.

Hay gente que me llama para que enseñe cursos de R. Dentro de muy poco tendré responderles: ¿pero qué dialecto de R quieres aprender?