Funkcja wyższego rzędu (ang. higher-order function) – w informatyce jest to funkcja, która zwraca lub przyjmuje jako argument inne funkcje. Tego rodzaju funkcje są powszechnie stosowane w językach funkcyjnych, takich jak SML, Ocaml, Haskell, Lisp, jak również w Pythonie i JavaScripcie. Aby można było tworzyć funkcje wyższego rzędu, funkcje muszą być typem pierwszoklasowym. Analogicznym pojęciem w matematyce jest funkcjonał.
Funkcje wyższego rzędu służą często do dostarczenia generycznych realizacji algorytmów, zaś programista parametryzuje je własnymi funkcjami (nierzadko bardzo prostymi, patrz przykład niżej). W bibliotekach standardowych są spotykane: map (funkcja, lista) – zwraca nową listę, zawierającą wyniki funkcji dla każdego elementu z wejściowej listy ( ); filter (funkcja, lista) – zwraca nową listę, składającą się tylko z tych elementów listy wejściowej, dla których funkcja (predykat) zwróciła prawdę; foldl (wartość początkowa, funkcja, lista) (fold left) – dla wszystkich elementów listy wywoływana jest funkcja, która przyjmuje dwa argumenty – wartość z listy, oraz wynik dla poprzedniego elementu ( ); foldr (wartość początkowa, funkcja, lista) (fold right) – działanie analogiczne do foldl, z tym że lista jest przeglądana od końca; reduce (funkcja, list) – funkcja występuje w Pythonie działa jak foldr z wartością