フロントエンドにおけるノートブックコマンドの実行

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

NotebookWrite[obj,data]カーネルが実行するNotebookWrite
FrontEnd`NotebookWrite[obj,data]フロントエンドが実行するNotebookWrite

カーネルとフロントエンドのコマンドの比較

Wolfram言語は,コマンドはカーネルで実行されるものか,フロントエンドで実行されるものか,コンテキストで区別する.カーネルのコマンドはコンテキストにあり,フロントエンドコマンドはコンテキストにある.

FrontEndExecute[expr]expr をフロントエンドで実行する

式のフロントエンドにおける実行

空のノートブック.

3.gif

カーネルのコマンドでノートブックにデータを書き込む.
カーネルでフロントエンドコマンドを実行しても何も起らない.
上のコマンドをフロントエンドに送ればコマンドは実行される.

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