Estoy familiarizado con la arquitectura orientada a objetos, incluido el uso de patrones de diseño y diagramas de clase para la visualización, y conozco la arquitectura orientada a servicios con sus contratos y enlaces de protocolo, pero ¿hay algo característico sobre un arquitectura de software para un sistema escrito en un lenguaje de programación funcional?Arquitectura de programación funcional
Sé que FP se ha utilizado para proyectos de mediana a gran escala. Paul Graham escribió la primera encarnación de Yahoo! Tienda en Common Lisp. Algunos sistemas de desarrollo de ceceo son complejos. La inteligencia artificial y los sistemas financieros escritos en lenguajes funcionales pueden ser bastante grandes. Todos ellos tienen al menos algún tipo de arquitectura inherente, sin embargo, me pregunto si tienen algo en común.
¿Qué aspecto tiene una arquitectura basada en la evaluación de expresiones? ¿Las arquitecturas de FP son más composable?
Actualización: Kyle me recordó que SICP es un buen recurso para este tema.
Actualización 2: he encontrado un buen post sobre el tema: How does functional programming affect the structure of your code?
Gracias por su respuesta. Estoy aprendiendo acerca de la semántica denotacional ((en Haskell) [http://en.wikibooks.org/wiki/Haskell/Select_Denotational] y (en general) [https://www.scss.tcd.ie/Andrew.Butterfield /Teaching/CS4003/DenSem-full-book.pdf]) y tu respuesta resuena con lo que estoy aprendiendo. Descomponer un problema en construcciones matemáticas (por ejemplo, las álgebras de las que hablaba) de forma tal que puedan integrarse en un sistema más grande. –
¿No está diciendo "componentes que resumen sobre sus dependencias" en FP como decir "Crear un nivel más alto de procedimientos y estructuras de datos" en imperativo/OOP? Mi pregunta específica era: ¿CÓMO describir estas abstracciones de orden superior? OOP tiene UML, con el diagrama de clases jugando el papel principal. ¿Qué tiene FP? –