Mathematica 9 is now available

Documentation / Mathematica / Mathematicaブック / Mathematicaの仕組み / モジュール構成と変数名の付け方  /

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`にあるから除去されることはない.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.