La programación funcional es la más adecuada para la mayoría de los tipos de problemas, incluso para los que normalmente usaría programación orientada a objetos, excepto tal vez los problemas que requieren el almacenamiento de muchos estados u otros efectos secundarios. Aparte de eso, FP maneja problemas complejos mucho más elegantemente que OOP, ya que gran parte proviene de un fondo matemático (comenzando con el cálculo lambda). Tienes mucha más flexibilidad en cuanto a abstracción y composición. Un programa orientado a objetos con muchos patrones de diseño podría refactorizarse utilizando construcciones más funcionales que le permitirán hacer lo mismo sin las estructuras repetitivas que los patrones de diseño le hacen escribir. Además de las matemáticas y el análisis sintáctico, FP también se ha utilizado ampliamente en la inteligencia artificial (particularmente Lisp).
Solución de un montón de problemas
sub-problemassub-sub-problemas ... ;) – willasaywhatNo estoy seguro de que volvería a describir, especialmente desde el punto de vista de la ciencia de computación, como la OO enfoque "más tradicional". OO se originó con Simula a finales de los años 60; funcional con LISP a fines de los '50. Smalltalk, el primer idioma explícitamente etiquetado como "orientado a objetos", se desarrolló contemporáneamente en los años 70 con ML, que podría considerarse el comienzo de la segunda generación de lenguajes de programación funcionales. –
posible duplicado de [¿Por qué los idiomas funcionales?] (Http://stackoverflow.com/questions/36504/why-functional-languages) –