aggiunto
Ho appena trovato due domande correlate
/programming//a/2582804/156458
Nei linguaggi di programmazione, dalla programmazione del linguaggio pragmatico di Michael Scott
In generale, si dice che un valore in un linguaggio di programmazione abbia uno stato di prima classe se può essere passato come parametro, restituito da una subroutine o assegnato in una variabile. I tipi semplici come numeri interi e caratteri sono valori di prima classe nella maggior parte dei linguaggi di programmazione. Al contrario, un valore di "seconda classe" può essere passato come parametro, ma non restituito da una subroutine o assegnato in una variabile e un valore di "terza classe" non può nemmeno essere passato come parametro.
Le etichette sono valori di terza classe nella maggior parte dei linguaggi di programmazione, ma valori di seconda classe in Algol. Le subroutine mostrano la maggior parte delle variazioni. Sono valori di prima classe in tutti i linguaggi di programmazione funzionali e nella maggior parte dei linguaggi di scripting. Sono anche valori di prima classe in C # e, con alcune restrizioni, in molti altri linguaggi imperativi, tra cui Fortran, Modula-2 e -3, Ada 95, C e C ++. 11 Sono valori di seconda classe nella maggior parte delle altre lingue imperative e valori di terza classe in Ada 83.
Qual è la base matematica per i valori di prima / seconda / terza classe nei linguaggi di programmazione?
La terminologia mi ricorda la logica del primo / secondo ordine, ma sono correlati?
Mi sembra che la differenza tra loro sia il caso specifico in cui un valore può essere utilizzato
- passato come parametro,
- restituito da una subroutine, oppure
- assegnato in una variabile.
Perché i casi specifici sono importanti, mentre non altri casi non menzionati?
Grazie.