Qual è una buona alternativa alla variabile name per un linguaggio che ha solo riferimenti o etichette immutabili?

10

Ad esempio, nei linguaggi funzionali, le variabili sono assegnazioni singole e i loro valori sono immutabili una volta assegnati. Quindi hanno due stati non associato e associato , una volta associati non possono essere modificati.

C'è qualche termine matematico o altro termine informatico che è più appropriato per una cosa del genere? Qualcosa che semanticamente non implica varianza o mutevolezza.

Se no non esiste come il termine e se stavi progettando un linguaggio con tali costrutti, quale altro oltre alla parola variable utilizzeresti per questi?

Io sono non che cerca veramente sondaggio per le idee, sto cercando di capire se esiste già un termine accettato dell'industria (qualsiasi settore) per una cosa del genere.

    
posta Jarrod Roberson 05.03.2012 - 17:59
fonte

7 risposte

3

Che dire di "simbolo"?

Ho visto un video su F # in cui l'oratore ha detto,

you do not assign a value to a variable, you bind a value to a symbol.

(Stai ancora cercando il riferimento per questo.)

Ogni volta che incontro la parola "variabile" in luoghi in cui tali costrutti sono immutabili, penso silenziosamente "simbolo legato".

    
risposta data 10.03.2012 - 22:05
fonte
10

Chiamali semplicemente variabili. La matematica ha variabili; i linguaggi funzionali hanno lo stesso tipo di variabili.

Vedi anche questo saggio di Bob Harper su questo problema terminologico .

    
risposta data 05.03.2012 - 18:41
fonte
4

È ancora una variabile se può assumere vari valori in diverse invocazioni. In altre parole, anche se non può essere modificato una volta assegnato, quel simbolo può essere inizialmente assegnato a valori diversi. Ciò è in contrasto con una costante che contiene lo stesso valore ogni volta che viene richiamata.

    
risposta data 05.03.2012 - 18:41
fonte
1

costante, o const sarebbe probabilmente familiare alle persone che usano linguaggi come C e C ++,

    
risposta data 05.03.2012 - 18:40
fonte
1

Nome . La stessa cosa può essere ragionevolmente chiamata con più nomi ( x = 4; y = 4 ); e un nome, una volta definito, non cambia mai il suo referente. x = 2; x = 3 ha lo stesso senso del dire che un polipo non è un polipo.

    
risposta data 10.03.2012 - 22:34
fonte
0

Perché non limitarsi a questo termine? Potrebbe non essere appropriato al 100%, ma quando scegli un nome diverso probabilmente causerà più equivoci rispetto a quelli che cerchi di risolvere. I progettisti di altri linguaggi funzionali potrebbero avere lo stesso problema, ma hanno deciso di usare anche il termine "variabile".

XSLT (che è ampiamente usato):

link

Haskell:

link

Schema:

link

Erlang:

link

Tutti usano anche il termine "variabile".

Naturalmente, altri designer di lingue preferiscono parlare di "binding" o "valori associati", come qui per F #:

link

    
risposta data 05.03.2012 - 18:38
fonte
0

A seconda del contex "variable" o "binding" funzionerebbe. Penso che "binding" abbia più probabilità di apparire in affermazioni come let in Haskell o Lisp.

    
risposta data 06.03.2012 - 02:03
fonte