¿Vale la pena aprender programación funcional para ingenieros informáticos?

Absolutamente.

Es posible que desee leer Por qué la programación funcional importa por Hughes …

http://www.cs.kent.ac.uk/people/…

Aquí el autor cita las funciones de orden superior (HOF) y la evaluación perezosa como dos ingredientes clave para programas mejor estructurados, pero lo que no se menciona, y creo que es aún más importante, es el hecho de que la eliminación del operador de asignación es pura los lenguajes funcionales significan que está libre de efectos secundarios y que es un beneficio enorme en un entorno multihilo y multinúcleo.

Si realiza una programación de tipo científico, la otra ventaja significativa de los lenguajes funcionales es que la traducción de una fórmula / algoritmo dado a una construcción de programación es más fácil y más natural.

En el espacio financiero cuantitativo (si ese es su interés), Jane Street es una gran fanática de los lenguajes funcionales y han escrito un buen artículo sobre su uso de OCaml aquí:

http://www.janestreet.com/minsky…

Sí.

Ya no es solo una emoción académica, sino que pensar en términos de funciones lo ayudará a programar para infraestructura informática paralela y distribuida. Le permitirá hacer uso de las tareas Map-Reduce de estilo Hadoop para resolver problemas bastante complejos y ayudará a que sus programas sean seguros para subprocesos cuando codifique para entornos de subprocesos múltiples y núcleos múltiples como ya se mencionó.

Además, personalmente encuentro que las técnicas de FP, especialmente las que realizan análisis de operaciones matemáticas, lo ayudan a escribir código de tal manera que se parece mucho más a las anotaciones matemáticas de las funciones que se implementan y, por lo tanto, el código es más legible y más fácil de leer. entender.

El CS212 de Peter Norvig en http://www.udacity.com podría ser un buen punto de partida para la “forma funcional” de pensar. Creo que coursera.org también tendrá una clase de programación funcional con Scala muy pronto.

Descargo de responsabilidad: no tengo autoridad en la programación funcional y estoy compartiendo esta perspectiva como un participante bastante nuevo en el juego.

Sí, al menos le dará algunos trucos y técnicas nuevas para pensar cómo resolver problemas.

More Interesting

¿Puedes sugerir algún buen libro que te enseñe los conceptos básicos antes de ingresar a la ingeniería informática?

¿Puede alguien con un BS en Ingeniería Informática trabajar principalmente en software como un CS?

¿Cuántos de ustedes creen que el sesgo de género en los campos STEM no existe?

¿Qué algoritmos existen para la predicción / regresión de series temporales? ¿Alguien sabe una buena fuente de código matlab o python para el pronóstico de series de tiempo?

¿Es una sabia decisión dejar IIT Delhi o IIT Bombay Computer Engineering (licenciatura) para universidades canadienses como el programa de ingeniería informática (cooperativa) de la Universidad de Waterloo dado que la persona no sería tratada como internacional en Canadá?

¿Puedo estudiar sin clases de ingeniería informática?

¿Cuál es el dispositivo tecnológico más sobrevalorado en 2016?

¿Qué opinas sobre Ingeniería Informática y Biología doble especial?

¿Cómo puede un niño de 13 años comenzar a aprender sobre circuitos y electrónica y cómo hacerlos?

¿Estaré en desventaja al estudiar ingeniería informática en lugar de ingeniería eléctrica?

Si los archivos / caché no se pueden eliminar realmente, ¿pierde espacio en el disco duro con el tiempo?

¿Cómo afecta la descarga de corona (más como el efecto de corona) a los espaciadores de amortiguación de un conductor de línea eléctrica?

¿Cómo procesan la información las CPU ALU?

¿Qué computadoras portátiles deberían usarse en ingeniería si la transmisión es CSE?

¿Cuáles son algunos proyectos BTP del sistema de gestión de bases de datos del último año?