|
2.11.5 発展:フロントエンドにおけるノートブックコマンドの実行
NotebookWrite[obj, data]等のコマンドを実行すると,データの挿入は実際にはフロントエンドによって行われる.しかし普通はコマンド自体を評価するためと,適切な要求をフロントエンドに送るためにカーネルが必要となる.それでも,コマンドによってはフロントエンドだけで実行できるものもあり,カーネルは必要とされない.

カーネルとフロントエンドのコマンドの比較
Mathematicaは,コマンドはカーネルで実行されるものか,フロントエンドで実行されるものか,コンテキストで区別する.カーネルのコマンドは System`コンテキストにあり,フロントエンドコマンドは FrontEnd`コンテキストにある.

式のフロントエンドにおける実行
空のノートブック.

カーネルのコマンドでノートブックに データを書き込む.
In[1]:= NotebookWrite[SelectedNotebook[ ], "x + y + z"]

カーネルでフロントエンドコマンドを実行しても何も起らない.
In[2]:= FrontEnd`NotebookWrite[FrontEnd`SelectedNotebook[ ], "a + b + c + d"]

上のコマンドをフロントエンドに送ればコマンドは実行される.
In[3]:= FrontEndExecute[%]

ノートブックの複雑な操作を行うプログラムを書く場合は,プログラムは主にカーネルで実行させるしかない.しかし,ボタンのクリックで実行できる単純な操作は,カーネルを起動しなくても,フロントエンドだけで所定のコマンドを実行することができる.
|