Pensamento Arquitetônico em Linguagens Funcionais

Minha caixa de perguntas relacionadas transborda de questões de programação funcional. Tendo analisado o mais relevante, ainda estou curioso para ouvir opiniões sobre o seguinte:

Como você pensa sobre a estruturação de um aplicativo em uma linguagem funcional?

Não estou falando de uma gramática específica do idioma. Estou interessado em paradigmas organizacionais conceituais (por exemplo, orientação a objetos).

Como muitos, minha primeira exposição ao encapsulamento e à reutilização de código veio do segundo plano do OO. Como eu tenho pesquisado diferentes linguagens, a programação funcional realmente chamou minha atenção. Estou começando a entender os benefícios da imutabilidade, funções de ordem superior, etc. Mas ainda perdi meu senso de como estruturar um aplicativo funcional sem recorrer a conceitos OO. Na verdade, muitos dos exemplos funcionais que tenho visto têm mais em comum com o código spaghetti, embora eu tenha certeza que isso se deve à simplicidade dos exemplos, e não a qualquer falha inerente na abordagem funcional.

Esta questão é parente de "quando devo usar programação funcional", mas eu já me convenci de que a abordagem funcional, apesar de prós e contras em certos domínios, é utilizável para praticamente qualquer coisa que você deseja. Eu só tenho dificuldade em imaginar a organização geral de um aplicativo complexo.

questionAnswers(2)

yourAnswerToTheQuestion