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


11

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

Esiste un termine matematico o un altro termine di informatica più appropriato per una cosa del genere? Qualcosa che semanticamente non implica varianza o mutabilità.

Altrimenti non esiste come termine e se stavi progettando un linguaggio che avesse tali costrutti, quale altro oltre alla parola variabile useresti per questi?

Sto non realmente cercando di sondaggio per le idee, sto cercando di capire se v'è già un settore accettato (qualsiasi settore) termine per tale cosa a.


1
Chiamali semplicemente immutabili ;)
Oded

variabile finale?
smp7d,

9
Il termine matematico per questo tipo di variabili sarebbe "variabile". Il concetto di una variabile mutabile non esisteva fino a quando i linguaggi di programmazione non sono entrati in scena.
sepp2k,

1
Non sono d'accordo con @ sepp2k. Il termine "variabile" è stato introdotto da Leibniz nel suo sviluppo del calcolo differenziale, e da allora fa parte della matematica e della fisica. Tali quantità variabili necessitano necessariamente della possibilità di cambiare. Altrimenti l'idea di $ \ Delta x $ o $ dx $ non ha senso.
Michael Bächtold,

1
@ sepp2k Non sono d'accordo. V'è un concetto di riassegnazione in matematica, anche se è tradizionalmente non chiama in quel modo. I matematici introducono costantemente variabili come x, y nel loro contesto (senza assegnare loro un valore) e assumono qualcosa a riguardo, diciamo y + x = 5. Successivamente possono assumere che x = 1 e concludere y = 4. Possono eliminare l'assunzione x = 1 e assumere invece x = 2 e concludere y = 3. Per me questo è un cambiamento in x, e stiamo ancora parlando della stessa variabile x, poiché l'assunto x + y = 5 vale in entrambi i contesti.
Michael Bächtold,

Risposte:


4

Che dire di "simbolo"?

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

non si assegna un valore a una variabile , si associa un valore a un simbolo .

(Sto ancora cercando il riferimento per questo.)

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


10

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

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


Mentre questo è sulla falsariga di quello che stavo cercando, il link fornito, provoca solo più dibattiti che risposte.

@JarrodRoberson, prendi il saggio collegato come "perché variabile è un termine appropriato"; sentiti libero di ignorare la parte relativa agli "assegnabili".
Ryan Culpepper

1
sì, gli assegnabili sono una specie di aringa rossa in quella discussione. Ma personalmente io sono ancora semanticamente bloccato sulla variare parte di variabili e il fatto che l'informatica non è una correlazione diretta al 100% a termini matematici in molti casi.

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. Questo è in contrasto con una costante che contiene lo stesso valore ogni volta che viene invocata.


1

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


1

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


Mi piace questo, stavo considerando il termine labelma namefunziona bene e bene se non meglio.

0

Perché non attenersi a quel termine? Potrebbe non essere appropriato al 100%, ma quando si sceglie un nome diverso che probabilmente causerà più equivoci di quelli che si tenta 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):

http://www.w3schools.com/xsl/el_variable.asp

Haskell:

http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-240003.2

Schema:

http://www.scheme.com/tspl2d/binding.html

Erlang:

http://www.erlang.org/doc/reference_manual/expressions.html

Tutti usano anche il termine "variabile".

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

http://msdn.microsoft.com/en-us/library/dd233238.aspx


0

A seconda del contesto, "variabile" o "associazione" funzionerebbe. Penso che "rilegatura" abbia più probabilità di venire in dichiarazioni come letin Haskell o Lisp.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.