Login Barrapunto
Programación funcional para el resto de nosotros
Capirucho nos cuenta: «Leyendo la última noticia sobre Scala salieron varios hilos hablando sobre la programación funcional. A muchos programadores acostumbrados a la programación imperativa estos conceptos nos resultan bastante complicados, así que tras informarme un poco llegué a un artículo, programación funcional para el resto de nosotros. En este artículo se afirma que los artículos y papers sobre programación funcional no tendrían por qué ser tan esotéricos, y que en realidad los conceptos no tienen nada inherentemente complicado. Además ofrece una introducción realmente clara a estos conceptos que a muchos que habíamos hecho nuestros pinitos con algún lenguaje funcional como haskell nos habían resultado tan extraños. Sería interesante conocer la opinión que tienen los barrapunteros sobre estos lenguajes que ya están triunfando en algunos campos como la programación concurrente (erlang) o la programación estadística (R).»
Historias relacionadas
[+]
Java fue un amor adolescente, Scala será el lenguaje de tu madurez 117 comentarios
BlueVoodoo nos cuenta: «Java y la orientación a objetos fueron el primer amor de muchos programadores, y les tratamos con el mismo respeto y adoración con el que yo trataba a Bindi (mi primera novia). Pero el tiempo siempre se lleva los primeros amores, y llega un momento en el que hay que romper y seguir adelante. Los sentimientos cambian y las personas maduran. Pero lo más importante es que el mundo a nuestro alrededor también ha cambiado. Java ha envejecido. Ha llegado el momento de aprender Scala con este tutorial.»
Este hilo ha sido archivado.
No pueden publicarse nuevos comentarios.
Programación funcional para el resto de nosotros
|
Log in/Crear cuenta
| Top
| 54 comentarios
| Buscar hilo
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.

Algunas desventajas
(Puntos:3, Interesante)En favor de estos lenguajes debo decir que he visto gente que aprendió haskell como primer lenguaje y son PUTOS AMOS en programación.
El problema es que tiene tantas cosas buenas (ver el artículo para tener más referencias) que uno se acostumbra y luego le da por saco no poder pasar funciones anónimas como argumento, no poder hacer pattern matching, evaluación perezosa,...
Y por último, os dejo una pequeña perlita para que veáis a dónde llega Haskell:
Una lista de enteros se representa como [Int].
+ (el operador) es en realidad una función que toma dos argumentos numéricos del mismo tipo y te da un tercer valor.
Pero si a + le das un argumento, "se convierte" en una función que recibe un argumento (el segundo sumando), y te da un valor.
Por ejemplo, (1+) es una función (y esto es sintaxis Haskell) que recibe un sumando y le suma 1.
Existe una función llamada map que toma una lista de elementos del mismo tipo (a), una función que toma elementos de tipo a y devuelve elementos de tipo (b) (es decir, no necesariamente el mismo tipo que su entrada), y la aplica a todos los elementos de la lista.
Por lo tanto:
map (1+) [1,2,3] es [2,3,4]
map (2*) [1,2,3] es [2,4,6]
¿Cómo haces un map genérico en Java?
El problema
(Puntos:2)( http://es.geocities.com/julio_sao | Última bitácora: Martes, 06 Mayo de 2008, 08:01h )
Personalmente he programado en CAML y tras unas dos semanas de dolores de cabeza todo empezaba a salir solo, creas funciones pequeñitas que luego las llaman más funciones pequeñitas y al final el programa entero es una función de poco mas de una linea jeje viene bien para luego cuando programas en lenguajes, como dirían los ceceros "de verdad" por que esa mentalidad luego es buena por que elimina muchos malos hábitos como variables globales, gotos y demás, lo malo es que las funciones que haces son muy pequeñas y hay demasiadas llamadas a subrutina, por lo que la eficiencia se resiente algo, aunque el mantenimiento es sencillísimo
Lo que no me veo es creando un programa de transferencias bancarias en CAML xDDDD
Mi propia experiencia
(Puntos:2)( http://asqueados.campanilla.net/wp | Última bitácora: Jueves, 05 Junio de 2008, 10:23h )
Tuve una asignatura llamada "Programación Declarativa". Empecé aprendiendo Prolog. Al principio muy bien, me sorprendió mucho el nuevo enfoque y resultaba emocionante.
Pero cuando tuvimos que hacer cosas más avanzadas, lo que hicimos fue aprender cómo funcionaba el intérprete, para simular sentencias de control de flujo (whiles, for,
Después dedicamos un poquito de tiempo a Lisp. Su rasgo más sorprendente es que no existía operador de asignación. Así que lo primero que aprendimos fue a simularlo.
En resumen, aprendimos cómo programar imperativamente en un lenguaje declarativo. Como decía otro profesor, para esos viajes no necesitábamos esas alforjas.
Artículos,noticias y payasadas de informática,política...Asqueados Press [campanilla.net]
Al final...
(Puntos:1)¿Y si... la clave fuera el compilador?
(Puntos:1)( http://www.estebang.com/nuevo )
Por otro lado, ¿existe algún tipo de guía para seleccionar las mejores herramientas según el proyecto a llevar a cabo? del tipo "este lenguaje mejor para este micro y este otro mejor para proyectos científicos"
Vaya manera de comentar un post, sembrando más dudas...
No hay futuro... que ya esté escrito
Es bien simple
(Puntos:3, Inspirado)( http://barrapunto.com/ )
Evalua las herramientas.
Y elige una.
Los lenguajes funcionales tienen un nicho que está enfocado al objetivo del programa que se esté haciendo. Matemáticas intensivas, programacion de algoritmos geneticos, evaluacion semántica y similares.
Me encantan los lenguajes funcionales (principalmente lisp y prolog, que es como un ser mixto). Pero NUNCA he tenido que elegir uno para ninguna de las tareas que he realizado en los últimos 12 años. (vamos, nunca fuera de una practica de universidad)
¿te gusta haskell? pues encantado. Pero el gusto no tiene nada que ver (salvo para elegir lenguaje cuando la tarea lo requiera).
La mayoría de los problemas triviales en el 99.9 por ciento de los programas que se hacen se vuelven monstruos incongruentes si se intentan realizar con programacion funcional.
Igual que cualquier problema trivial para el que la programacion funcional es perfecta se puede convertir en imposible de solucionar fuera de ella.
Pero en fin, esto me recuerda a la disyuntiva sobre programacion recursiva/no recursiva. Es exactamente lo mismo. No sirven para hacer las mismas cosas.
¿¿PETER?? ¿Demostenes? Y actualmente Lockpeter
Para realizar una tranasición suave
(Puntos:1)Solución: Incrustar
(Puntos:1)