Ecco a cosa serve la programmazione in stile funzionale - su base più o meno giornaliera.
Facciamo un sacco di cose statistiche e attuariali con dataset abbastanza grandi. I dati recuperati dal database sono oggetti essenzialmente immutabili e statici. Nessun motivo per creare una classe con metodi.
Ogni fase del calcolo aggiunge alcuni dettagli aggiuntivi, ma in sostanza non modifica l'oggetto. Alla "fine" della pipeline stiamo davvero facendo una fantasia riduci per calcolare somme e conteggi e altre cose.
Immagina questo.
for data in summarize( enrich( calculate( some_query( criteria() ) ) ) ):
print data
Ogni "fase" del calcolo è un ciclo di programmazione funzionale che esegue una semplice lettura-calcolo-rendimento e crea un oggetto composito di altre cose più i risultati.
(Usiamo Python, da qui la programmazione funzionale usando le funzioni del generatore.)
È più facile usare oggetti stateless e immutabili.