In un'applicazione funzionale, dovresti racchiudere funzioni comuni di livello superiore nei nomi significativi del dominio o lasciarle "nude"?
Ad esempio, se hai un elenco di indirizzi e "ordinati per codice di avviamento postale" è un dominio comune - ordinamento significativo (mailer mirati, ecc.), è preferibile scrivere:
val sortedCustomers = customers.sort((a,b) => (a.zipCode compareTo b.zipCode) < 0)
O è meglio creare una funzione sortedByZip(cs : Iterable[Customer]) : Seq[Customer]
?
Creare la funzione ha il vantaggio di essere (minutamente) più astratto, ma ha lo svantaggio di essere opaco, creare un nome da ricordare, ecc.
Mi sto chiedendo nel contesto di una significativa base di codice professionale, quella che intendi vivere per anni, essere il più possibile mantenibile, essere "vera" rispetto alle aspettative dei programmatori funzionali, ecc.