|
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.
|