Esiste una convenzione di denominazione per le funzioni di ordine superiore? Cioè, funzioni che restituiscono altre funzioni.
Un esempio in Javascript:
function onlyDivisibleBy(div) { // <-- higher order function
return function (n) {
return n % div === 0;
}
}
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.filter(onlyDivisibleBy(3)); // [0, 3, 6, 9]
arr.filter(onlyDivisibleBy(5)); // [0, 5]
Ho avuto la tendenza a scriverlo come sopra: cioè, l'ottimizzazione per la leggibilità al punto di chiamata (avrei letto le ultime righe sopra come "filtra l'array per ottenere elementi divisibili solo per 5"), tuttavia al definizione lontana dal contesto in cui è usata, non è così facile capire cosa questa funzione fa dal suo nome.