This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Modularität und die Benennung von Dingen /

Automatisches Laden von PaketenFortgeschrittenes Thema: Die Erzeugung neuer Symbole abfangen

2.6.12 Manipulation von Symbolen und Kontexten nach Namen

Wandlung zwischen Symbolen und ihren Namen

Hier ist das Symbol x.

In[1]:= x // InputForm

Out[1]//InputForm= x

Sein Name ist eine Zeichenkette.

In[2]:= SymbolName[x] // InputForm

Out[2]//InputForm= "x"

Dies liefert wieder das Symbol x.

In[3]:= Symbol["x"] // InputForm

Out[3]//InputForm= x

Sobald Sie eine Zuweisung wie x = 2 gemacht haben, wird x, wann immer es evaluiert wird, durch 2 ersetzt. Mitunter wollen Sie jedoch möglicherweise weiterhin auf x selber verweisen, ohne sofort den Wert von x zu erhalten.

Dies läßt sich mit einem namentlichen Verweis auf x erreichen. Der Name des Symbols x ist die Zeichenkette "x", und auch wenn x selber durch einen Wert ersetzt wird, wird die Zeichenkette "x" immer gleich bleiben.

Die Namen der Symbole x und xp sind die Zeichenketten "x" und "xp".

In[4]:= t = {SymbolName[x], SymbolName[xp]} // InputForm

Out[4]//InputForm= {"x", "xp"}

Dies weist x einen Wert zu.

In[5]:= x = 2

Out[5]=

Wann immer Sie x eingeben, wird es jetzt durch 2 ersetzt.

In[6]:= {x, xp} // InputForm

Out[6]//InputForm= {2, xp}

Der Name "x" wird davon jedoch nicht beeinflußt.

In[7]:= t // InputForm

Out[7]//InputForm= InputForm[{"x", "xp"}]

Verweis auf Symbole und Kontexte über den Namen

x und xp sind Symbole, die in dieser Mathematica-Session erzeugt worden sind; xpp wurde nicht erzeugt.

In[8]:= {NameQ["x"], NameQ["xp"], NameQ["xpp"]}

Out[8]=

Sie können die Form von Symbolnamen mit Zeichenkettenmustern, wie sie im Abschnitt 2.7.3 beschrieben werden, spezifizieren. "x*" steht zum Beispiel für alle Namen, die mit x beginnen.

Dies liefert eine Liste aller Symbolnamen in dieser Mathematica-Session, die mit x beginnen.

In[9]:= Names["x*"] // InputForm

Out[9]//InputForm= {"x", "xp"}

Diese Namen entsprechen eingebauten Mathematica-Funktionen.

In[10]:= Names["Qu*"] // InputForm

Out[10]//InputForm= {"Quartics", "QuasiMonteCarlo", "QuasiNewton", "Quit", "Quotient"}

Dies fragt nach Namen, die ähnlich zu WeierstrssP sind.

In[11]:= Names["WeierstrssP", SpellingCorrection->True]

Out[11]=

Namentliche Entfernung von Symbolen

Dies löscht die Werte aller Symbole, deren Namen mit x anfangen.

In[12]:= Clear["x*"]

Der Name "x" ist jedoch noch bekannt.

In[13]:= Names["x*"]

Out[13]=

Aber der Wert von x ist gelöscht worden.

In[14]:= {x, xp}

Out[14]=

Dies entfernt vollständig alle Symbole, deren Namen mit x anfangen.

In[15]:= Remove["x*"]

Nun ist nicht einmal mehr der Name "x" bekannt.

In[16]:= Names["x*"]

Out[16]=

Entfernen aller von Ihnen eingeführten Symbole

Wenn Sie keine weiteren zusätzlichen Kontexte einführen, dann werden alle von Ihnen in einer Mathematica-Session eingeführten Symbole im Global`-Kontext plaziert. Diese Symbole können mit Remove["Global`*"] vollständig entfernt werden. Da eingebaute Mathematica-Objekte sich im System`-Kontext befinden, bleiben sie deshalb davon unbeeinflußt.

Automatisches Laden von PaketenFortgeschrittenes Thema: Die Erzeugung neuer Symbole abfangen