В чем разница: функции первого класса и функции высшего порядка?
Функции высшего порядка -- функции, которые могут принимать другие функции и возвращать функции. first-class functions -- фича языка, позволяющая переменным содержать ссылки на функции. По сути -- разные вещи, но по отдельности смысла в них не много:)
Погуглить слабо?Функция высшего порядка, в отличие от функции первого порядка, имеет один из трёх видов:
1. Один из параметров функции также является функцией и она возвращает значение.
2. Она возвращает функцию, но ни один из параметров не является функцией.
3. И первый и второй пункт: функция возвращает функцию и один из параметров является функцией.
Источник: https://github.com/anton-k/ru-neophyte-guide-to-sc...
Таким образом, функция высшего порядка должна возвращать функцию и/или принимать одну функцию в параметр