добавленной
Просто нашел два связанных вопроса
/programming//a/2582804/156458
В языках программирования, из прагматики языка программирования Майкла Скотта
В общем случае считается, что значение в языке программирования имеет статус первого класса, если его можно передать в качестве параметра, вернуть из подпрограммы или присвоить переменной. Простые типы, такие как целые числа и символы, являются значениями первого класса в большинстве языков программирования. Напротив, значение «второго класса» может быть передано в качестве параметра, но не возвращено из подпрограммы или присвоено переменной, а значение «третьего класса» даже не может быть передано в качестве параметра.
Метки являются значениями третьего класса в большинстве языков программирования, но значениями второго класса в Algol. Подпрограммы отображают наибольшее разнообразие. Они являются первоклассными значениями во всех функциональных языках программирования и большинстве языков сценариев. Они также являются значениями первого класса в C # и, с некоторыми ограничениями, в нескольких других императивных языках, включая Fortran, Modula-2 и -3, Ada 95, C и C ++. 11 Они являются значениями второго сорта в большинстве других императивных языков и значениями третьего сорта в Аде 83.
Что является основой математики для значений первого / второго / третьего класса в языках программирования?
Терминология напоминает мне логику первого / второго порядка, но связаны ли они?
Мне кажется, что разница между ними заключается в том, в каком конкретном случае можно использовать значение
- передается в качестве параметра,
- вернулся из подпрограммы, или
- назначен в переменную.
Почему конкретные случаи важны, а другие не упомянуты?
Благодарю.