Я понял, что задолго до Хаскелла, О'Камла или LISP функции высшего порядка были предметом академических исследований, а в математике Шенфинкель (в 1967 г.) и Хаскелль Карри (в 1968 г.) уже применяли такие методы, как карри, но был до того, как он был доступен на любом языке программирования.
Схема, согласно Википедии , была первым языком, который ввел надлежащие функции высшего порядка как первоклассные граждане, но есть ли кто-нибудь, кому мы можем приписать оригинальную идею? Может быть, Алонзо Черч, который изобрел лямбда-исчисление в 1930-х годах? В частности, кто придумал следующее определение, которое я видел в различных парафразах вокруг в нескольких книгах и онлайн-ресурсах?
Функция считается более высокого порядка, когда она принимает другую функцию в качестве аргумента или когда она возвращает функцию. Любая функция, не принимающая функции в качестве аргументов или возвращаемых типов, называется функцией первого порядка.
Ответы:
Фреге говорит в «Funktion und Begriff» (1891):
На английском (мой перевод):
Как вещи и функции различны, так и функции, аргументы которых являются функциями, радикально отличающимися от функций, аргументы которых должны быть вещами. Я называю последние функции первого порядка первыми функциями второго порядка.
источник
Статья в Википедии уже приписывает Стрейчи терминологию «первоклассные граждане».
«Функция более высокого порядка», я полагаю, восходит к различию между логикой высшего порядка и логикой первого порядка.
См. Https://en.wikipedia.org/wiki/Higher-order_logic и http://plato.stanford.edu/entries/logic-higher-order/
источник