compose
è un'operazione tradizionale. Il suo ordine è stato deciso dai matematici. Tuttavia, come molte cose originariamente decise dai matematici, l'ordine non è una convenzione molto conveniente per i programmatori. Includiamo comunque l'operazione perché la programmazione funzionale ha forti legami con la matematica.
In lingue come Haskell, hai solo l'operatore di composizione, quindi devi leggere e scrivere tutto indietro, come:
filter even . concat . filter ((> 2) . length)
Il filtro per la lunghezza maggiore di 2 viene visualizzato per primo, quindi concat
, quindi il filtro per i numeri pari. Ci si abitua a questo, ma è ancora fastidioso, quindi altri linguaggi creano operatori di composizione come andThen
che consentono di scrivere una funzione composta nell'ordine in cui viene eseguita. Chiunque potrebbe facilmente aggiungere un tale operatore al proprio programma anche in Haskell, del resto, non sarebbe più un idioma di Haskell.
Sentiti libero di usare quello che ti rende più facile la traduzione dal tuo dominio.