Duplicar posibles:
Why functional languages?Beneficios y usos de un lenguaje de programación funcional
que comenzó a programar con C/C++, VB, y, finalmente, Python - todos los lenguajes imperativos. Tomé un curso sobre lenguajes de programación y aprendí mi primer lenguaje funcional: OCaml. Fue terrible.
Sintaxis y otros horrores aparte, OCaml tomó mi proceso de pensamiento imperativo y lo tiró por la ventana. Fue frustrante Insistí en que todo lo que podría hacerse funcionalmente también podría hacerse imperativamente. Pensé en la programación funcional como una programación imperativa sin una extremidad (efectos secundarios). En respuesta a mi frustración, el único beneficio que mi profesor pudo encontrar fue la capacidad de un FPL para paralelizar las funciones libres de efectos secundarios.
De todos modos, suficiente charla.
- ¿Cuáles son algunas de las ventajas que ofrecen los FPL por encima de las IPL?
- ¿Hay algo que se pueda hacer fácilmente en un FPL que no se puede hacer fácilmente en una IPL?
- ¿Hay algún ejemplo del mundo real de FPL en uso, o en su mayoría sirven como ejercicios académicos? (Cuando digo mundo real, me refiero a un proyecto que depende en gran medida del aspecto funcional del lenguaje y no introduce un FPL en un escenario al que no pertenece).
Gracias,
Advait
Parcialmente duplicar: http://stackoverflow.com/questions/36504/ why-functional-languages –
Solo una breve sugerencia: un idioma de OO 'le impide' acceder a todas las variables, escondiéndolas detrás de las abstracciones. Esto te ayuda a controlar la complejidad. Del mismo modo, un FP le impide manipular el estado compartido y, por lo tanto, le ayuda a escribir código paralelizable, entre otras cosas. –
Vi esa publicación y noté cómo todos mencionaron el paralelismo fácil. No estaba realmente satisfecho con ninguna de las respuestas. Siento que la paralelización de llamadas a funciones estándar no proporcionará muchos beneficios de rendimiento sobre permitir al programador paralelizar explícitamente su propio código (especialmente dado que la sobrecarga de iniciar un nuevo hilo para ejecutar una función potencialmente trivial es bastante grande). Cuando el programador deja la elección (cuándo/a qué paralelizar), obtiene la mayor libertad: los beneficios de rendimiento del paralelismo sin las muletas de un FPL. – advait