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

Symbol["name"]名前でシンボルを作成する
SymbolName[symb]シンボルの参照名を検索する

シンボルの作成と検索

シンボルxを作る.
In[1]:=
Click for copyable input
参照名は文字列として定義されている.
In[2]:=
Click for copyable input
xのシンボルをまた作る.
In[3]:=
Click for copyable input

x=2のようにxに一度値を割り当てたら,計算ではxが現れるたびに値2に置換される.しかし,場合によっては,置換させずにもとの名前で参照し続けたいときがある.

そうするにはxに参照名を与えておく.シンボルxの文字列による名前を"x"としておけば,xに実際に値が置換されても,文字列"x"で引き続きxを参照できるようになる.

シンボルxxpの名前を"x""xp"にする.
In[4]:=
Click for copyable input
xに数値を設定する.
In[5]:=
Click for copyable input
Out[5]=
xの入力は2に置き換えられる.
In[6]:=
Click for copyable input
だが,文字列による名前"x"はそのままである.
In[7]:=
Click for copyable input
NameQ["form"]文字列 form にマッチする名前のシンボルがあるかどうかを判定する
Names["form"]文字列 form にマッチする名前を持つシンボルをすべて列挙する
Contexts["form`"]文字列 form にマッチする名前を持つコンテキストを列挙する

文字列名を使ったシンボルとコンテキストの参照

xxpは本セッションで作ったシンボルだが,xppはそうでない.
In[8]:=
Click for copyable input
Out[8]=

「文字列パターン」で説明する文字列パターンを使いシンボルの検索や指定を行うことができる.例えば,"x*"と文字列を入力すると,xで始まるすべての名前を表せる.

現行セッションで作ったxで始まるすべてのシンボル名を列挙する.
In[9]:=
Click for copyable input
この名前パターンを使うと,組込み関数が検索できる.
In[10]:=
Click for copyable input
スペルがWeierstrssPに近い名前を検索する.
In[11]:=
Click for copyable input
Out[11]=
Clear["form"]文字列 form にマッチする参照名を持つすべてのシンボルの値を消去する
Clear["context`*"]コンテキストにあるすべてのシンボルの値を消去する
Remove["form"]文字列 form にマッチする参照名を持つすべてのシンボルを完全に除去する
Remove["context`*"]コンテキストにあるすべてのシンボルを完全に除去する

参照名とコンテキスト指定によるシンボルの消去と除去

xで始まる名前を持つすべてのシンボルの値を消去する.
In[12]:=
Click for copyable input
それでも,"x"はまだ既知である.
In[13]:=
Click for copyable input
Out[13]=
しかし,xの値は消去してある.
In[14]:=
Click for copyable input
Out[14]=
今度は,xで始まる名前を持つすべてのシンボルを除去させる.
In[15]:=
Click for copyable input
これで,"x"による名前も未知になった.
In[16]:=
Click for copyable input
Out[16]=
Remove["Global`*"]大域コンテキストGlobal`にあるシンボルすべてを完全に除去する

ユーザ定義の全シンボル除去

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