- Nada es Gratis - https://nadaesgratis.es -

Programación Funcional para Economistas

Dada mi mención de programación funcional en mi entrada anterior, un amable lector me recuerda el famoso curso de MIT, Structure and Interpretation of Computer Programs. Aquí están los videos de una versión de este curso. Y aquí la versión electrónica del libro de Harold Abelson y Gerald Jay Sussman con Julie Sussman, un auténtico clásico. En el doctorado en Minnesota, al menos cuando yo estuve, lo empleaban muchos estudiantes para aprender programación a un nivel un poco más avanzado.

El curso emplea Lisp/Scheme, creado originalmente por John McCarthy, quizás décadas antes de su tiempo. Lisp ha tenido un renacimiento recientemente como Clojure. Clojure tiene la enorme ventaja de emplear la Java Virtual Machine, con lo que es muy facil integrarlo con entornos en Java.

Sobre Clojure he leido este libro y este otro para un proyecto que estoy a punto de terminar, pero no me he familiarizado en exceso con el lenguaje por su baja velocidad media de ejecución, que en mi caso personal es una restricción muy relevante.

Por supuesto, la linea más pura de programación funcional emplea Haskell (en Penn Computer Science hay mucha gente que lo utiliza), pero en mi experiencia es que para la mayoría de los economistas no es el camino a seguir. Otra posibilidad, menos radical, es irse con Scala (una clase en Coursera por Martin Odersky, el creador del lenguaje, y su libro) o con F# (este libro creo que es pedagógico).

Como comentaba en la respuesta a una pregunta en mi anterior entrada, mi evaluación de la situación que para muchos economistas quizás sea una mejor solución incorporar las lecciones de la programación funcional en parte de sus códigos en C++14, Python (este libro acaba de salir) o incluso en Matlab (esto por supuesto puede ser muy diferente en otras areas o en el mundo privado). R también te deja hacer muchas cositas con clausuras. Por ejemplo, hoy mismo en R-bloggers sale esta entrada y Hadley Wickham ha escrito mucho sobre el tema.

Estoy a punto de terminar un documento de trabajo donde explicaré muchas de estas cosas pero, para abrir el apetito, cierro esta entrada con unos cuantos videos. Primero, Neal Ford, el autor del libro que recomendaba ayer:

y un extracto de su curso (el curso completo se puede comprar aquí)

Otra introducción:

y una buena descripcion de las mónadas, como a mitad del video:

Una introducción a la programación funcional en C++:

Una introducción en Python:

Una introducción en Java:

Y algo de visión contraria, para aclarar que nada es gratis, especialmente cuando uno escribe código: