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 teso a scriverlo come sopra: cioè, ottimizzando per la leggibilità nel punto di invocazione (avrei letto le ultime righe sopra come "filtrare l'array per ottenere elementi divisibili solo per 5"), tuttavia al punto di definizione lontano dal contesto in cui viene utilizzato, non è così facile capire cosa fa questa funzione dal suo nome.