Puede avanzar mucho en la programación funcional con solo la intuición y la capacidad de visualizar abstracciones. La composición de funciones y las funciones de orden superior no necesitan conocimientos matemáticos para comprender su uso. Incluso los tipos de datos algebraicos pueden entenderse simplemente como una forma disciplinada de modelar los diferentes estados que puede tener un objeto; cualquier codificador decente de Java habrá hecho ese tipo de cosas con las interfaces y debería poder entender el concepto.
Si está tratando de usar métodos de programación funcional en un lenguaje no diseñado explícitamente para FP, eso es todo lo que realmente puede administrar en ese lenguaje de todos modos. Hay poco beneficio en aprender los fundamentos matemáticos de FP si el lenguaje no admite las abstracciones más complejas a menos que tenga la ambición de agregar nuevas características al lenguaje. Los genéricos fueron agregados a Java por un equipo de científicos informáticos con una sólida formación en investigación en programación funcional. Eric Meijer ha utilizado una experiencia y una pasión similares para trabajar en extensiones potentes de .NET (por ejemplo, Language Integrated Query). Pero si no tiene esas ambiciones, las matemáticas avanzadas no serán de gran ayuda al tratar de usar el estilo FP en C # o Java.
Si tiene la oportunidad de aprender programación funcional en un lenguaje cuyo diseño se basa en conceptos de FP, entonces hay algunos conceptos matemáticos que harán que la mayoría de las personas sean más efectivas.
Cálculo lambda
- Cómo aprender cálculo rápidamente
- ¿Qué topología podemos definir en [math] \ mathscr {P} (E) [/ math] donde E es un espacio vectorial real de dimensión finita?
- ¿Qué es algo que no se puede calcular con las matemáticas?
- ¿Cuál es la diferencia entre proposición y predicado en matemáticas?
- ¿Qué universidad es mejor para estudiar un primer título de matemáticas en Israel?
Aprender al menos los conceptos básicos del cálculo Lambda puede brindarle una visión poderosa de los métodos de programación funcional. Ni siquiera tiene que entender su base teórica; Lambda Calculus también es un lenguaje de programación simple: puede escribirle un intérprete si le gusta ese tipo de ejercicio intelectual.
La mayoría de los lenguajes funcionales (aquellos diseñados explícitamente para la programación funcional) basan su sintaxis y semántica en el cálculo lambda, por lo que aprender el cálculo lo ayuda a comprender cómo funcionan y cómo se pueden usar de manera más efectiva. También le enseña cómo funcionan los compiladores y cómo usan los conceptos de cálculo de Lamba para optimizar el código compilado. A diferencia de la máquina Turing, el cálculo es un modelo práctico que puede usar en el trabajo diario.
Teoría de la categoría
La mayoría de los lenguajes de programación funcionales tienen sistemas de tipos avanzados que se utilizan para construir abstracciones de diversos grados de complejidad. Algunos conocimientos de teoría de categorías pueden ayudar a comprender mejor
- Las relaciones entre las diferentes abstracciones.
- Cuál es el más apropiado para usar en un contexto dado
- Cómo combinarlos juntos
Es más útil para aquellos que intentan construir nuevas bibliotecas que encapsulan nuevas y poderosas abstracciones. El programador funcional menos ambicioso puede vivir sin comprender la teoría de categorías.