Was ist eine gute Alternative zur Namensvariablen für eine Sprache, die nur unveränderliche Referenzen oder Bezeichnungen enthält?

11

In funktionalen Sprachen sind Variablen beispielsweise eine einzelne Zuweisung und ihre Werte sind nach der Zuweisung unveränderlich. Sie haben also zwei ungebundene und gebundene Zustände . Sobald sie gebunden sind, können sie nicht mehr geändert werden.

Gibt es einen mathematischen Begriff oder einen anderen Informatikbegriff, der für so etwas am besten geeignet ist? Etwas, das semantisch keine Varianz oder Veränderlichkeit impliziert.

Wenn nicht, gibt es keinen Begriff, und wenn Sie eine Sprache mit solchen Konstrukten entwerfen würden, welche andere als die Wortvariable würden Sie für diese verwenden?

Ich bin nicht wirklich auf der Suche nach Umfrage für Ideen, ich versuche , herauszufinden, ob es bereits eine akzeptierte Industrie (Industrie) Begriff für so eine Sache.


quelle
1
Nennen Sie sie einfach unveränderlich ;)
Oded
letzte Variable?
smp7d
9
Der mathematische Begriff für diese Art von Variablen wäre "variabel". Das Konzept einer veränderlichen Variablen existierte erst, als Programmiersprachen ins Bild kamen.
sepp2k
1
Ich bin nicht einverstanden mit @ sepp2k. Der Begriff "Variable" wurde von Leibniz in seiner Entwicklung der Differentialrechnung eingeführt und ist seitdem Teil der Mathematik und Physik. Diese variablen Größen müssen unbedingt geändert werden können. Ansonsten macht die Idee von $ \ Delta x $ oder $ dx $ keinen Sinn.
Michael Bächtold
1
@ sepp2k Ich bin anderer Meinung. In der Mathematik gibt es ein Konzept der Neuzuweisung, obwohl es traditionell nicht so genannt wird. Mathematiker führen ständig Variablen wie x, y in ihren Kontext ein (ohne ihnen einen Wert zuzuweisen) und nehmen etwas über sie an, sagen wir y + x = 5. Als nächstes können sie annehmen, dass x = 1 ist und y = 4 schließen. Sie können die Annahme x = 1 fallen lassen und stattdessen x = 2 annehmen und y = 3 schließen. Für mich ist das eine Änderung von x, und wir sprechen immer noch über dieselbe Variable x, da die Annahme x + y = 5 in beiden Kontexten gilt.
Michael Bächtold

Antworten:

4

Was ist mit "Symbol"?

Ich habe ein Video auf F # gesehen, in dem der Sprecher sagte:

Sie weisen einer Variablen keinen Wert zu , sondern binden einen Wert an ein Symbol .

(Ich suche immer noch nach der Referenz dafür.)

Immer wenn ich an Stellen, an denen solche Konstrukte unveränderlich sind, auf das Wort "Variable" stoße, denke ich stillschweigend an "gebundenes Symbol".

Harpo
quelle
10

Nennen Sie sie einfach Variablen. Mathe hat Variablen; Funktionssprachen haben die gleiche Art von Variablen.

Siehe auch diesen Aufsatz von Bob Harper zu diesem Terminologieproblem .

Ryan Culpepper
quelle
Während dies in etwa dem entspricht, wonach ich gesucht habe, löst der bereitgestellte Link mehr Debatten als Antworten aus.
@JarrodRoberson, nimm einfach den verknüpften Aufsatz als "warum Variable ein passender Begriff ist"; Fühlen Sie sich frei, den Teil über "zuweisbare Elemente" zu ignorieren.
Ryan Culpepper
1
Ja, die zuweisbaren Elemente sind in dieser Diskussion eine Art roter Hering. Aber ich persönlich bin immer noch semantisch auf den unterschiedlichen Teil der Variablen fixiert und auf die Tatsache, dass die Informatik in vielen Fällen keine 100% direkte Korrelation zu mathematischen Begriffen darstellt.
4

Es ist immer noch eine Variable, wenn sie in verschiedenen Aufrufen verschiedene Werte annehmen kann. Mit anderen Worten, obwohl es nach seiner Zuweisung nicht mehr geändert werden kann, kann dieses Symbol zunächst verschiedenen Werten zugewiesen werden. Dies steht im Gegensatz zu einer Konstante , die bei jedem Aufruf denselben Wert enthält.

Karl Bielefeldt
quelle
1

Konstante oder Konstante ist wahrscheinlich Personen bekannt, die Sprachen wie C und C ++ verwenden.

Nemanja Trifunovic
quelle
1

Name . Dasselbe kann vernünftigerweise mit mehreren Namen aufgerufen werden ( x = 4; y = 4); und ein einmal definierter Name ändert niemals seinen Referenten. x = 2; x = 3macht genauso wenig Sinn wie zu sagen, dass ein Oktopus kein Oktopus ist.

Jon Purdy
quelle
Ich mag das, ich habe über den Begriff nachgedacht, labelaber es namefunktioniert gerecht und gut, wenn nicht besser.
0

Warum nicht einfach bei diesem Begriff bleiben? Es ist möglicherweise nicht 100% angemessen, aber wenn Sie einen anderen Namen wählen, führt dies wahrscheinlich zu mehr Missverständnissen als denjenigen, die Sie zu lösen versuchen. Designer anderer funktionaler Sprachen hatten möglicherweise das gleiche Problem, entschieden sich jedoch auch für den Begriff "Variable".

XSLT (das weit verbreitet ist):

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

Haskell:

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

Planen:

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

Erlang:

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

Alle verwenden auch den Begriff "Variable".

Natürlich sprechen andere Sprachdesigner lieber von "Bindungen" oder "gebundenen Werten", wie hier für F #:

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

Doc Brown
quelle
0

Je nach Kontext würde "Variable" oder "Bindung" funktionieren. Ich denke, dass "Bindung" eher in Aussagen wie letin Haskell oder Lisp auftaucht .

Tikhon Jelvis
quelle