Функции, которые получают функцию как параметр или возвращают ее, называются функциями высшего порядка. Функциональное программирование основано на данных, возвращаемых небольшим количеством функций высшего порядка, разработанных главным образом для работы с коллекциями. Функции высшего порядка проектируются так, чтобы простые функции можно было объединять для построения сложного поведения.