テキスト型インターフェースを使った入出力

「ノートブック型インターフェース」で説明したように,標準的なフロントエンドインターフェースはほとんどの用途に適している.しかし場合によってはノートブックフロントエンドを使う必要がなく,Wolfram言語カーネルとより直接的にインタラクトしたいこともあろう.そのような場合はテキスト型インターフェースを使うことができる.テキスト型インターフェースでは,キーボードでタイプしたテキストが直接カーネルに届く.

テキスト型インターフェースではWolfram言語カーネルのほとんどの機能にアクセスできるが,Wolframシステムフロントエンドのグラフィックス機能および動的インタラクティブ機能は利用できないので注意が必要である.

Wolfram言語カーネルの開始

テキスト型インターフェースでWolframシステムを開始するためには,通常オペレーティングシステムのプロンプトでコマンドwolframをタイプする.

$ wolfram
Mathematica 10.0 for Linux x86 (64-bit)
Copyright 1988-2013 Wolfram Research, Inc.

In[1]:=
C:\Program Files\Wolfram Research\Mathematica\9.0>wolfram
Mathematica 10.0 for Microsoft Windows (32-bit)
Copyright 1988-2013 Wolfram Research, Inc.

In[1]:=

WolframKernel実行ファイルへの完全パスを入力しなければならない場合もある.

$ /Mathematica/10.0/Mathematica.app/Contents/MacOS/WolframKernel
Mathematica 10.0 for Mac OS X x86 (64-bit)
Copyright 1988-2013 Wolfram Research, Inc.

In[1]:=

システムによっては,WolframシステムカーネルアイコンをダブルクリックすることでWolframシステムを起動することができる場合もある.

Wolframシステムセッション

Wolframシステムは各段階でIn[n]:=という形式のプロンプトを表示し,入力を受け付ける準備ができていることを知らせる.そのようになったら入力をタイプして最後にEnterReturnを押す.

In[n]:=プロンプトは自分でタイプするものではなく,このプロンプトに続くテキストだけをタイプするという点に注意する.

入力をタイプし終えたら,Wolframシステムはそれを処理し結果を生成する.結果が表示されるときOut[n]=というラベルが付く.

次はテキスト型インターフェースを使ったWolframシステムとの「対話」である.
In[1]:= 2^100

Out[1]= 1267650600228229401496703205376

In[2]:= Integrate[1/(x^3 - 1), x]

1 + 2 x
ArcTan[-------] 2
Sqrt[3] Log[-1 + x] Log[1 + x + x ]
Out[2]= -(---------------) + ----------- - ---------------
Sqrt[3] 3 6

Wolframシステムのドキュメントでは,Wolframシステムとの「対話」は次のように示されることが多い.

コンピュータがIn[1]:=と表示する.そこにとタイプするだけである.Out[1]=で始まる行がWolframシステムからの結果である.
In[1]:=
Click for copyable input
Out[1]=

Wolfram言語チュートリアルに含まれている実際の対話のほとんどは,Wolframシステムのノートブックインターフェースで得られる形式の出力を示している.テキスト型インターフェースでの出力も同様であるが,特殊文字やフォントサイズの変更等の機能はない.

入力の編集

Ctrl+A,Homeカーソルを入力の最初に移動させる
Ctrl+E,Endカーソルと入力の最後に移動させる
Ctrl+H,Backspaceカーソルの前の文字を削除する
Ctrl+D,Deleteカーソルの後ろの文字を削除する
Ctrl+G,Ctrl+C,Esc入力をキャンセルあるいは放棄する
Ctrl+Kカーソルから入力の最後までを削除する
Ctrl+D,Ctrl+Zカーネルを終了する
Left,Rightカーソルを移動させる
Up,Down直前の入力を見る
Enter入力を評価するかもう1行足すかする
PageUp,PageDown入力履歴の最初あるいは最後の項目にジャンプする

入力編集のためのデフォルトキー

短い入力は1行で行うことができる.入力が内外場合はスクリーンの幅で自動的に改行され複数行になる.カーソルはいつでも戻して文字を挿入したり削除したりすることができる.改行された行は,編集に従って更新される.

入力行でカーソルを移動させるためには,キーボードの左矢印と右矢印キーを使う.Ctrl+Aキーを使うと,入力の先頭にジャンプし,Ctrl+Eキーを使うと入力の最後にジャンプする.カーするの前と後の文字を削除するためには,それぞれCtrl+HCtrl+DBackspaceDeleteを使う.

入力が長い場合,数行にすることもできる.Wolfram言語は入力が完全な式になるまで,連続した行を自動的に読み続ける.例えば,1行に開く丸カッコや二重引用符をタイプしたとすると,Wolfram言語は閉じる丸カッコやもう一つの二重引用符を見るまで連続した入力行を読み続ける.

In[1]:= 1+
2 f[
x]

Out[1]= 1 + 2 f[x]

しかし,次の行に移動するのにEnterを押すと,もう前の行を編集することはできない.

改行で分けられたいくつかの完全なWolfram言語式から成る入力テキストをペーストすると,これらの式は別の入力として解釈され,いくつかのOut[n]プロンプトが表示される.

既に入力されたものを評価するのではなく,入力を消してもう一度入力し直したいこともあるだろう.既にタイプされた入力をキャンセルまたは放棄するためには,trl+Gを使う.カーソル位置以降の入力を削除したい場合はCtrl+Kを使う.

次の表にキーボードショートカットのリストをまとめる.

入力履歴

%n またはOut[n]n 番目の出力値
In[n]n 番目の入力を再評価
Up,Down入力履歴をスクロールアップあるいはスクロールダウン

前の入出力値の引用と再評価

テキスト型インターフェースではWolfram言語の入出力行は上から下に向かい連続して進行する.また,1から順に連続した番号も付き,In[n]およびOut[n]のプロンプトとして表示される.これらの番号により,前の入出力を引用したり再評価したりすることができる.ただし,式を再評価すると最初と違った結果が得られる場合があるので注意が必要である.この理由は,前の計算から最新の計算までの間に入出力の式で参照している変数の値が変更される,というようなことが起るためである.Out[n]の要求があると,Wolfram言語は n 番目の出力を最終の形のまま返してくる.また,In[n]の要求があれば,n 番目の入力がユーザにより与えられたままの形で取り込まれ,変数の取る現在の値に従って再評価が行われる.

コンピュータステムによっては,前の行にスクロール移動し前に行った計算を参照したり,入力行をカットアンドペーストしたりすることができることがある.あるいは矢印のUpまたはDownを使って前に入力した入力を見ることもできる.

Rawモードのテキストベースインターフェースの開始

通常,Wolfram言語カーネルがテキストベースインターフェースで実行している場合,前セクションで説明したようにコマンドラインエディタやコマンド履歴等の追加のツールを提供する.このようなツールが動作するようにするために,カーネルは使用されている文字ターミナルまたはターミナルエミュレータを制御する特殊な低レベルの命令を使う.ターミナルがコマンドラインエディタで必要とされる低レベルの命令をすべてはサポートしていない場合や,コマンドの一部としてカーネルを非対話的に実行する必要がある場合等,このカーネルの機能を使いたくない場合もあるだろう.

Wolfram言語のカーネルをrawモードで実行するためには,コマンドラインスイッチのを使う.rawモードのとき,カーネルはキーボードから受け取ったバイトすべてを直接入力バッファに累積し,後でパースや解釈に使えるようにする.

$ wolfram -rawterm
Mathematica 10.0 for Linux x86 (64-bit)
Copyright 1988-2013 Wolfram Research, Inc.

In[1]:=
C:\Program Files\Wolfram Research\Mathematica\9.0>wolfram -rawterm
Mathematica 10.0 for Microsoft Windows (32-bit)
Copyright 1988-2013 Wolfram Research, Inc.

In[1]:=
$ /Mathematica/10.0/Mathematica.app/Contents/MacOS/WolframKernel -rawterm
Mathematica 10.0 for Mac OS X x86 (64-bit)
Copyright 1988-2013 Wolfram Research, Inc.

In[1]:=

rawモードは,以前のバージョンのWolframシステムで使われていた「古いスタイル」のコマンドラインインターフェースに類似したものである.

カーネルの終了

Wolframシステムを終了するためには,入力プロンプトにQuit[]とタイプする.コンピュータシステムによっては,Ctrl+DCtrl+Zを押すことでもWolframシステムを終了することができる.Ctrl+Dは入力行が空のときにWolframシステムを終了する.

Ctrl+D, Ctrl+Z, あるいは Quit[] Wolframシステムを終了する

テキスト型インターフェースでWolframシステムを終了する