|
2.7.12 シンボルとコンテキストの名前による操作

シンボルの作成と検索
シンボル xを作る.
In[1]:= x // InputForm
Out[1]//InputForm= x
参照名は文字列として定義されている.
In[2]:= SymbolName[x] // InputForm
Out[2]//InputForm= "x"
xのシンボルをまた作る.
In[3]:= Symbol["x"] // InputForm
Out[3]//InputForm= x
x = 2のように xに一度値を割り当てたら,計算では xが現れるたびに値 2に置換される.しかし,場合によっては,置換させずにもとの名前で参照し続けたいときがある.
そうするには参照名を文字列として与えておく.シンボル xの文字列による名前を "x"としておけば, xに実際に値が置換されても,文字列 "x"で引き続き xを参照できるようになる.
シンボル xと xpの名前を "x"と "xp"にする.
In[4]:= t = {SymbolName[x], SymbolName[xp]} // InputForm
Out[4]//InputForm= {"x", "xp"}
xに数値を設定する.
In[5]:= x = 2
Out[5]= 
xの入力は 2に置き換えられる.
In[6]:= {x, xp} // InputForm
Out[6]//InputForm= {2, xp}
だが,文字列による名前 "x"はそのままである.
In[7]:= t // InputForm
Out[7]//InputForm= InputForm[{"x", "xp"}]

文字列名を使ったシンボルとコンテキストの参照
xと xpは本セッションで作ったシンボルだが,xppはそうでない.
In[8]:= {NameQ["x"], NameQ["xp"], NameQ["xpp"]}
Out[8]= 
2.8.3で説明する文字列パターンを使いシンボルの検索や指定を行うことができる.例えば, "x*"と文字列を入力すると,xで始まるすべての名前を表せる.
現行セッションで作った xで始まるすべてのシンボル名を列挙する.
In[9]:= Names["x*"] // InputForm
Out[9]//InputForm= {"x", "xp"}
この名前パターンを使うと,組込み関数が検索できる.
In[10]:= Names["Qu*"] // InputForm
Out[10]//InputForm= {"Quantile", "Quartics", "QuasiMonteCarlo", "QuasiNewton", "Quit", "Quotient"}
スペルが WeierstrssPに近い名前を検索する.
In[11]:= Names["WeierstrssP", SpellingCorrection->True]
Out[11]= 

参照名とコンテキスト指定によるシンボルの消去と除去
xで始まる名前を持つすべてのシンボルの値を消去する.
In[12]:= Clear["x*"]
それでも, "x"はまだ既知である.
In[13]:= Names["x*"]
Out[13]= 
しかし, xの値は消去してある.
In[14]:= {x, xp}
Out[14]= 
今度は,すべてを除去させる.
In[15]:= Remove["x*"]
これで, "x"による名前も未知になった.
In[16]:= Names["x*"]
Out[16]= 

ユーザ定義の全シンボル除去
特にコンテキスト指定をしていなければ,ユーザの導入するシンボルは大域コンテキスト Global`に設けられる.Remove["Global`*"]と入力すれば,作成したすべてのシンボルが一括除去できる.組込み関数はシステムコンテキスト System`にあるから除去されることはない.
|