Dodany
Właśnie znalazłem dwa powiązane pytania
/programming//a/2582804/156458
W językach programowania, od Pragmatics Programming Language Michaela Scotta
Mówi się, że wartość w języku programowania ma status pierwszej klasy, jeśli można ją przekazać jako parametr, zwrócić z podprogramu lub przypisać do zmiennej. Proste typy, takie jak liczby całkowite i znaki, są wartościami pierwszej klasy w większości języków programowania. Natomiast wartość „drugiej klasy” można przekazać jako parametr, ale nie można jej zwrócić z podprogramu ani przypisać do zmiennej, a wartości „trzeciej klasy” nie można nawet przekazać jako parametru.
Etykiety są wartościami trzeciej klasy w większości języków programowania, ale wartościami drugiej klasy w Algolu. Podprogramy wykazują największą różnorodność. Są to wartości pierwszej klasy we wszystkich funkcjonalnych językach programowania i większości języków skryptowych. Są to również wartości pierwszej klasy w języku C # i, z pewnymi ograniczeniami, w kilku innych imperatywnych językach, w tym Fortran, Modula-2 i -3, Ada 95, C i C ++. 11 Są to wartości drugiej kategorii w większości innych imperatywnych języków, a wartości trzeciej klasy w Adzie 83.
Jakie są podstawy matematyczne dla wartości pierwszej / drugiej / trzeciej klasy w językach programowania?
Terminologia przypomina mi logikę pierwszego / drugiego rzędu, ale czy są one powiązane?
Wydaje mi się, że różnica między nimi polega na tym, w którym konkretnym przypadku można zastosować wartość
- przekazany jako parametr,
- wrócił z podprogramu lub
- przypisany do zmiennej.
Dlaczego konkretne przypadki są ważne, a inne przypadki nie są wymienione?
Dzięki.