読者です 読者をやめる 読者になる 読者になる

とつとつとしてろうとせず

ひまつぶしにどうぞ。

すべての変数の削除

Mathematicaですべての変数の値を削除したい場合は次のように書く。

Clear["Global`*"]

長いことこのコマンドは「おまじない」としてだけ使ってきたが、真面目にMathematicaのプログラミングについて調べてみると意味がわかったのでメモしておく。

Clear[a]

が変数「a」を削除するものだというのはわかる。「*」記号も単なるワイルドカードなのはOK。よくわからないのが「Global`」の部分である(ちなみに「`」は「Shift+@」で出せる)。実はMathematicaにおける変数名はコンテキストという領域に保存されているらしい(名称的に考えて、メモリのアドレスというよりは,変数のスコープとか名前空間とかに関係のある話なんじゃなかろうか?)。コンテキストを何も指定せず

a=0;

などと入力した場合、変数aはGlobalコンテキストに保存され、「Global`a」として定義される(通常、「Global`」の部分は省略される)。この話は何らかのパッケージを読み込むときのコマンド

Needs["VectorAnalaysis`"];

などに関係がある。つまり、冒頭のコマンドの意味は「Globalコンテキストに存在する任意の変数の値をClearする」ということになる。昔、単にワイルドカードだけ指定すればいけるんじゃないかと思って失敗したのは、コンテキストをきちんと指定していなかったから、なのかもしれない。
Mathematicaのプログラミングも奥が深いなぁ。あんまり深いところにはいきたくないというのが正直な話だったりするのだが(汗)。ああ、ちなみにはてなブログシンタックスハイライトの機能はMathematicaには未対応である。MapleMaximaには対応しているらしく、それならもう一つくらいいいじゃないかと思わないでもないが、Mathematicaの記事を書くはてなブロガーの総数から察しろ、ということかもしれないね。