Yo , básicamente, de acuerdo con la respuesta de FrustratedWithFormsDesign , pero también se preguntan cómo el aprendizaje del nuevo paradigma ayuda a desarrollar habilidades de uno. Puedo dar un par de ejemplos de mi propia experiencia.
Desde que aprendí la programación funcional, soy mucho más consciente de qué conceptos con los que trabajo se consideran más naturalmente como "objetos" (en general, cuando la mutación tiene sentido) y cuáles se consideran más naturalmente como "valores" inmutables (creo que hay una distinción importante , tocando dónde OO tiene sentido frente a cuándo FP tiene sentido, pero esa es solo mi opinión).
Noto que mi código incluye efectos secundarios, y soy más cuidadoso de aislar esos lugares, haciendo que mis funciones sean más "puras". Esto mejora enormemente la capacidad de prueba de mi código OO.
Soy más consciente de los ciclos en mi representación de datos. (Por ejemplo, no creo que pueda escribir una función para convertir una lista enlazada en una lista doblemente enlazada en Haskell, por lo que nota los ciclos un poco más en ese idioma). Evitar los ciclos reduce la cantidad de sincronización debe realizar para que sus estructuras de datos sean coherentes internamente, lo que facilita la carga de compartir estas estructuras entre subprocesos.
Es más probable que confíe en la recursividad (las construcciones de bucle recursivo del esquema son cosas hermosas). Dijkstra mencionó la importancia de esto en las Notas sobre programación estructurada : los algoritmos recursivos se correlacionan muy directamente con la inducción matemática, lo que sugiere que es el único medio para demostrar intelectualmente que nuestros bucles son correctos. (No sugiero que debamos probar que nuestro código es correcto, pero que cuanto más fácil lo hagamos para nosotros, lo más probable es que nuestro código sea correcto).
Es más probable que use funciones de orden superior. El artículo de John Hughes, Por qué es importante la programación funcional . Enfatiza la componibilidad que se obtiene al emplear técnicas de programación funcional, las funciones de orden superior juegan un papel importante.
Además, como se menciona en la respuesta de Jetti , encontrará que se están incorporando muchas ideas de FP en los nuevos lenguajes OO. Ruby y Python proporcionan muchas funciones de orden superior, he oído que LINQ se describe como un intento de brindar soporte para las comprensiones monádicas en C #, incluso C ++ ahora tiene expresiones lambda.