Обзор

Некоторое время назад меня смущала разница между функциями первого класса и функциями высшего порядка. К счастью, я нашел отличный ответ на Stack Overflow (Вопрос о Stack Overflow) (Автор Stack Overflow я комментирую) . Я почти уверен, что не буду последним человеком, которого смутят эти два, казалось бы, похожих понятия, поэтому я решил поделиться своими аннотациями на эту тему.

Функции первого класса и функции высшего порядка

Вопрос. Есть ли разница между функциями высшего порядка и функциями первого класса?

О: Да, разница есть.

Определение функций первого класса

Вопрос. Что такое первоклассная функция?

О: Всякий раз, когда в языке есть первоклассные функции, это означает, что язык рассматривает функции как значения, которые вы можете присвоить функции переменной и передавать ее. AKA первоклассная функция — это возможность обращаться с функциями так же, как с любым другим значением.

Определение функций высшего порядка

Вопрос. Что такое функция высшего порядка?

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

Заключение

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

P.S. Спасибо Zoul , который действительно ответил на этот вопрос о переполнении стека.