¿Por qué muchos libros sobre aprendizaje de programación funcional son pesados ​​en matemáticas?

Con la programación imperativa, te preocupa mucho más el “estado de construcción” y / o el “estado de transformación”. Con la programación funcional, te preocupa mucho más la construcción / transformación de la estructura . La disposición de la estructura esquematiza el cambio de estado a medida que se atraviesa. Sin embargo, la estructura no está completamente diseñada. Está implícito y se construye gradualmente a medida que se ejecuta el programa.

Siempre debe preocuparse por las relaciones en la programación, pero esta calidad de FP hace que sea mucho más importante prestar atención a las relaciones. Las matemáticas razonan sobre las relaciones desde principios básicos, por lo que es una buena forma de expresar y razonar sobre el resultado y el rendimiento de un programa funcional.

Culturalmente, FP ha estado enclaustrado en los pasillos de la informática durante mucho tiempo. No ha sido entretenido por la industria hasta hace poco. Si estudias CS durante el tiempo suficiente, comienza a parecerse mucho a las matemáticas. Con la presentación de FP a un público más amplio solo recientemente, esa influencia cultural va a estar allí.

Eso es extraño, no me he encontrado con eso demasiado. Ciertamente, el libro electrónico gratuito que escribí (publicado por SyncFusion en su serie Succinctly, y es gratis, por lo que esto no es un spam) no tiene nada de matemática. 🙂

Al contrario de lo que escribió Aryeh, son absolutamente útiles para otras cosas además de las matemáticas. Solo tiene que pasar por aros para cosas con estado, por eso sugiero un híbrido FP como F #, y aún mejor, usando C # y F # juntos.

Y sí, FP deriva de conceptos de funciones que provienen de las matemáticas, pero también tiene sus pies firmemente plantados en la teoría de la prueba, por ejemplo, vea lo que hace Coq.

Debido a que la programación funcional nunca ha oído hablar de usuarios reales y / o problemas internos como E / S, sincronización, etc. En otras palabras, no son de propósito general y solo buenos para las matemáticas.

Esta y otras razones es la razón por la cual cualquiera que camina lejos de Algol termina con algo que solo se puede utilizar para campos especializados.

Porque la programación funcional se deriva en gran medida de la definición matemática de la función.