Czy istnieje konwencja nazewnictwa dla funkcji wyższego rzędu? Oznacza to, że funkcje zwracają inne funkcje.
Przykład w 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]
Zazwyczaj pisałem to tak jak powyżej: to znaczy optymalizując czytelność w punkcie wywołania (przeczytałem ostatnie linie powyżej jako „przefiltruj tablicę, aby uzyskać elementy podzielne tylko przez 5”), jednak w punkcie definicji dalej z kontekstu, w jakim jest używana, nie jest łatwo zrozumieć, co robi ta funkcja na podstawie jej nazwy.