PDF de programación - Programación funcional para el resto de nosotros

Imágen de pdf Programación funcional para el resto de nosotros

Programación funcional para el resto de nosotrosgráfica de visualizaciones

Publicado el 19 de Julio del 2017
528 visualizaciones desde el 19 de Julio del 2017
214,2 KB
19 paginas
Creado hace 13a (29/08/2010)
Programación funcional para el resto de nosotros

Slava Akhmechet

29 de agosto de 2010

Resumen

Un excelente punto de partida para comprender mejor la programación funcional. Original
de Slava Akhmechet y traducido al español por Luis Mendoza con el permiso del autor. En la
dirección electrónica defmacro.org/ramblings/fp.html puedes consultar el original.

1.

Introducción

Los programadores son procrastinadores (o sea, personas que aplazan las cosas). Llegan, toman
un poco de café, revisan su bandeja de entrada, leen sus actualizaciones de RSS, leen las noticias,
dan un vistazo a los artículos más recientes en los sitios de tecnología, examinan las discusiones
políticas en los secciones designadas de los foros de programación. . . se restriegan los ojos y echan
otro vistazo para asegurarse de no perderse nada. Van a comer. Regresan, inician el IDE por unos
minutos. Revisan la bandeja de entrada. Toman un poco de café. Antes de darse cuenta, el día de
trabajo ya terminó.

Pero, de vez en cuando, te encuentras con artículos verdaderamente desafiantes. Si buscas en el
lugar correcto encontrarás al menos uno cada pocos días. Como son difíciles de entender y necesitas
tiempo para leerlos, empiezan a acumularse. Antes de darte cuenta, tienes una larga lista de vínculos
y una carpeta llena de archivos PDF y quisieras tener un año en una pequeña cabaña a la mitad
del bosque sin nadie a kilómetros a la redonda para que finalmente puedas comprenderlos. Estaría
bien que alguien viniera cada mañana mientras das un paseo por el río para dejarte algo de comida
y llevarse la basura.

No sé de tu lista, pero una buena parte de la mía tiene que ver con programación funcional. Estos
son generalmente los artículos más difíciles de entender. Escritos en un áspero lenguaje académico,
aun los “veteranos de la industria de Wall Street con diez años de experiencia” no entienden de
qué tratan los artículos sobre programación funcional (también llamada FP, por sus siglas en inglés).
Si preguntas al administrador de proyectos de Citi Group o de Deutsche Bank por qué usan JMS
en lugar de Erlang te dirán que no pueden usar lenguajes académicos para aplicaciones de fortaleza
industrial 1. El problema es que algunos de los sistemas más complejos con los requerimientos más
rígidos están escritos usando elementos de programación funcional. Algo no cuadra.

Es cierto que los artículos sobre FP (recuerda que son las siglas en inglés para programación
funcional) son difíciles de entender, pero no tendrían por qué serlo. Las razones para que haya
ese obstáculo al conocimiento son meramente históricas. No hay nada inherentemente difícil en los
conceptos de FP. Considera este artículo como “una guía accesible para entener FP”, un puente
entre nuestras mentes imperativas hacia el mundo de FP. Prepárate un café y sigue leyendo. Con
un poco de suerte, en poco tus amigos estarán bromeando sobre tus nuevas ideas sobre FP.

Así que, ¿qué es la programación funcional o FP? ¿Cómo se produce? ¿Es comestible? Si es tan
útil como proclaman sus defensores, ¿por qué no es más usada en la industria? ¿Por qué parece

1Cuando buscaba trabajo en el otoño de 2005 a menudo hice esa pregunta. Es bastante divertido recordar cuantos
rostros con signos de interrogación vi. Uno podría pensar que a 300,000 la pieza de estas personas, al menos tendrían
un buen entendimiento de las herramientas que tienen disponibles.

1

que solo personas con grado de doctorado lo quieren usar? Más importante, ¿por qué es tan difícil
de aprender? ¿Qué es todo eso de cierres(closures), continuaciones, currying, evaluación tardía y
cero efectos colaterales? ¿Cómo puede usarse en proyectos que no tengan que ver son universidades?
¿Por qué parece tan distinto de todo lo bueno, santo y querido por nuestros corazones imperativos?
Aclararemos todo esto pronto. Empecemos explicando las razones por las que existe esa gran barrera
entre el mundo real y los artículos académicos. La respuesta es tan sencilla como dar un paseo por
el parque.

2. Un paseo por el parque

¡Enciende la máquina del tiempo! Nuestro paseo empieza unos dos mil años atrás, en una bello
y soleado día de la primavera de 380 a.C. A las afueras de las murallas de Atenas, bajo la plácida
sombra de los olivos, Platón caminaba rumbo a la Academia con un joven pupilo. El clima estaba
agradable, la cena había estado deliciosa, y la conversación empezó a tomar tintes filosóficos.

“Mira a esos dos estudiantes”, dijo Platón escogiendo cuidadosamente las palabras para hacer
una pregunta educativa. “¿Cual de ellos te parece más alto?” El joven pupilo miró hacia la cuenca
de agua en la que dos hombres estaban parados. “Son más o menos de la misma altura”, contestó.
Platón preguntó: “¿Qué quieres decir con ‘más o menos’ ?”. El joven contesto: “Bueno, desde aquí se
ven de la misma estatura, pero si estuviera más cerca seguramente vería alguna diferencia”.

Platón sonrió. Había llevado al joven en la dirección correcta. “¿Así que dirías que no hay ninguna
cosa perfectamente igual a otra en nuestro mundo?” Después de pensar un poco, el joven respondió:
“No lo creo. Toda cosa es al menos un poco diferente de otra, aunque no podamos ver la diferencia”.
¡Había dado en el clavo! Platón dijo: “Entonces, si ninguna cosa es perfectamente igual a otra en este
mundo, ¿cómo crees que entendemos el concepto de equidad ‘perfecta’ ?” El joven se quedó perplejo.
“No lo sé”, contestó.

Así nacio el primer esfuerzo por entender la naturaleza de las matemáticas. Platón sugirió que
todo en nuestro mundo es solo una aproximación de la perfección. Además, se dio cuenta de que
entendemos el concepto de perfección aunque no la hayamos visto. Llegó a la conclusión de que
las formas matemáticas perfectas viven en otro mundo y que de alguna forma sabemos de ellas al
tener una conexión con ese universo “alternativo”. Sabemos bien que no hay un círculo perfecto
que podamos observar. Pero entendemos qué es un círculo perfecto y podemos describirlo medi-
ante ecuaciones. ¿Qué son, entonces, las matemáticas? ¿Por qué esta descrito nuestro universo con
leyes matemáticas? ¿Será posible que todos los fenómenos del universo sean descritos mediante las
matemáticas?2

La filosofía de las matemáticas es una materia de estudio muy compleja. Como muchas disciplinas
filosóficas genera más preguntas que respuestas. Buena parte de los concensos alcanzados giran en
torno a que las matemáticas son realmente un rompecabezas: podemos declaramos un conjunto
básico de principios que no entran en conflicto, y un conjunto de reglas sobre cómo operan estos
principios. Entonces podemos usar estas reglas como base para reglas más y más complejas. Los
matemáticos le llaman a esto un “sistema formal” o “cálculo”. Podríamos construir un sistema formal
del Tetris si quisieramos. De hecho, una implementación del Tetris que funcione es un sistema formal,
solo que especificado usando una representación inusual.

Una civilización de criaturas peludas que existiera en Alfa Centauri no podría leer nuestros
formalismos del Tetris y de los círculos porque su único órgano sensorial solo percibiera olores.
Lo más probable es que nunca sabrían nada del Tetris, pero sí tendrían un formalismo para los
círculos. Probablemente nosotros no podríamos entenderlo, pues nuestro sentido del olfato no sería
tan sofisticado, pero una vez que dejamos de lado la representación del formalismo (a través de

2Esta parece ser una cuestión muy controversial. Los físicos y los matemáticos se ven obligados a reconocer que

no esta del todo claro si todo en el universo obedece leyes matemáticas o no.

2

diversos instrumentos sensoriales y técnicas de lectura para entender el lenguaje), los conceptos
fundamentales son entendibles para cualquier civilización inteligente.

Es interesante notar que aunque no existiera una civilización inteligente en el universo, los for-
malismos del Tetris y de los círculos estarían ahí para ser examinados, solo que nadie los estaría
buscando. Si una civilización inteligente apareciese, es muy probable que descubriría algunos for-
malismos para ayudarle a describir las leyes de nuestro universo. Sería poco probable que alguna
vez encontraran algo sobre el Tetris porque nada en el universo observable se le parece. El Tetris
es uno de los incontables ejemplos de sistemas formales, o rompecabezas, que no tienen nada que
ver con el mundo real. De hecho, no podemos estar seguros de que todos los números naturales
tengan referencia en el mundo real, ya que podemos pensar en un número tan grande que no pueda
describir nada en un universo donde las cosas tienden a ser finitas.

3. Un poco de historia3

Cambiemos de velocidad en la máquina del tiempo. Esta vez viajaremos a un punto más cercano,
a la decada de 1930. La Gran Depresión estaba asolando a todo el mundo. Casi toda familia de toda
clase social se vió afectada por la tremenda recesión económica. Muy pocos santuarios quedaron
donde la gente estaba a salvo de la pobreza. Pocas personas tuvieron la fortuna de estar en alguno
de esos santuarios, pero existían. Nuestro interés se centrará en los matemáticos de la Universidad
de Princeton.

Las nuevas oficinas construidas en estilo gótico daban a Princeton un aire de paraíso. Lógicos
(de la rama matemática de la lógica) de todo el mundo fueron invitados a Princeton para construir
un nuevo departamento. Mientras muchos en norteamérica no podían ni poner una pieza de pan en
sus mesas para la cena, techos altos, paredes cubiertas de madera tallada, discusiones diarias con
una taza de té, y paseos por el bosque eran algunas de las condiciones de Princeton.

Uno de los matemáticos viviendo ese lujoso estilo de vida fue un joven llamado Alonzo Church.
Alonzo recibió un grado académico en Princeton, y fue persuadido
  • Links de descarga
http://lwp-l.com/pdf5567

Comentarios de: Programación funcional para el resto de nosotros (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad