FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
// Saludos |
#2
|
||||
|
||||
Cita:
Algo que me tomo tiempo entender es que no existe una linea ascendete tipo: Programacion Imperativa < Estructural < Objetos Sino familias de lenguajes. Por lo tanto, no hay retroceso en pasar de una familia a otra (algo que hacemos todo el tiempo, por ejemplo al usar un lenguaje declarativo como SQL o HTML). La programacion funcional es la OPUESTA a la orientada a objetos. En OO se tiende a enfatizar todo en el sustantivo, mientras en la funcional en el paso de datos. La primera vez que entendi la diferencia fue leyendo: http://steve-yegge.blogspot.com/2006...-of-nouns.html P.D: Al igual que todo "estilo", la programacion funcional puede ser incorporada en otros lenguajes que son OO, y la OO se puede introducir en otros lenguajes no OO (como por ejemplo, cuando se simular OO en C). Esto significa que no hay que sacrificar -del todo- la herramienta que conozco ahora, por una totalmente diferente. Un ejemplo simple, en python (python es multi-paradigma: OO, procedural, funcional, imperativo): Tradicional, imperativo (con efectos colaterales): Código PHP:
Código PHP:
http://stackoverflow.com/questions/2...ed-programming La programacion funcional ha sido casi siempre un "nicho" oscuro, ppalmente porque sus proponentes son muy de la academia y meten una terminologia y casos de usos muy cienti/matematico/esoterico que es dificil de resonar con el programador promedio, pero ultimamente sus conceptos mas utiles se han ido pegando en varios lenguajes. Por ejemplo: Soporte a Closure y funciones de primero orden Uso de funciones anonimas / lambdas Tambien han ido surgiendo lenguajes como F#, Scala, Clojure que tiene un punto de vista mas "normal" de la programacion funcional y que como corren sobre un runtime como .NET/Java permiten importar codigo OO.
__________________
El malabarista. |
#3
|
||||
|
||||
Cita:
Y ¿Cuales son eso efectos colaterales? Y por cierto, el segundo ejemplo parece mucho mas retorcido, en el peor sentido, que el de php. Un saludo!
__________________
"la única iglesia que ilumina es la que arde" Anonimo |
#4
|
||||
|
||||
Cita:
// Saludos |
#5
|
|||
|
|||
ajam, todo muy bien, pero sigo sin saber las diferencias claves en los lenguajes ..muy buenos aportes de todas formas
|
#6
|
||||
|
||||
http://docs.python.org/howto/functional.html
Cita:
Supongamos que el codigo que puse (ambos son python, pongo etiqueta PHP por los colores, ya que no hay para python) fuera una funcion: Código PHP:
En la programacion funcional se busca que con la MISMA entrada ocurra EXACTAMENTE, SIEMPRE, la MISMA salida. Esto ayuda a que el programa sea mas confiable, correcto y sin sorpresas inesperadas. O en otras palabras, se busca la inmutabilidad de los datos, y se prefiere retornar copias nuevas de los datos transformadas por funciones. En forma funcional: Código PHP:
Los efectos colaterales son causas de muchos errores y dificultad en depurar los programas, porque en cualquier momento, una estructura cambia su significado e informacion al ir pasando de un lado al otro, y el manejo del estado se debe chequear manualmente (recordar que si paso un objeto mutable lo que envie me puede devolver algo inesperado). Cita:
En OO se puede llegar a cosas raras como: Código PHP:
__________________
El malabarista. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Programar .Net | kman | Varios | 0 | 01-09-2006 03:49:08 |
Programar un telefono | mauriciofox | Internet | 3 | 05-12-2004 22:11:16 |
Programar una PDA | marcial | Varios | 5 | 02-10-2004 19:39:41 |
Programar con Paquetes PKG | brandolin | Varios | 1 | 10-08-2004 03:37:08 |
Programar el puerto usb | el toluca | Varios | 0 | 30-06-2004 20:33:17 |
|