式のアウトライン表示

計算をさせ非常に長い答が返ってくるとき,答のすべてを見たくないときもあるだろう.全体の形がどうなっているか知りたいかもしれない.そして式の形が分かったならば部分的に詳細がどうなっているか見てみたいこともある.

そのようなときは,関数ShortShallowを使うと式を省略表示できる.

Short[expr]expr の部分を1行分表示する
Short[expr,n]expr の部分を n 行分表示する
Shallow[expr]expr の木構造において最上位(最も浅いレベル)の部分だけを表示する
Shallow[expr,{depth,length}]expr の木構造において指定レベルの深さと長さまで表示する

式のアウトライン表示

この計算結果は非常に長いものになる.実際に表示させたなら,23行程度続いてしまうだろう.
In[1]:=
Click for copyable input
そこでを短縮表示させる.答の中のとは省略された項の数を示す.
In[2]:=
Click for copyable input
Out[2]//Short=

Wolfram言語によりOutputFormのようなテキスト形式の出力が生成される場合,まず,式が長くても短くても単一行で全部分が生成される.次に,表示行の幅を見て,それに収まるように式が複数行に分割される.このとき,各行には上付き文字や分数等の数学記号が入っていて実際の表示では1行分の高さ以上になることもある.なお,短縮表示関数Shortに指定できる行数は,出力装置に実際に表示される行の数ではなく「論理行数」であることに注意する.

の答を4行分だけ表示する.先程より多くの項が見えるようになる.
In[3]:=
Click for copyable input
Out[3]//Short=

ShortStandardFormTraditionalForm等の別の形式でも使える.これらの形式を使う場合は,改行は出力を生成するときにカーネルによって決められるのではなく,出力を表示するときにノートブックインターフェースにより決められる.その結果,Shortにより生成される線の数の設定は,スクリーンで表示される実際の線の数を近似するだけとなる.

Shortを別の出力表示の制御機能と組み合せて使ってもよい.ここではInputFormの変換関数と一緒に使う.
In[4]:=
Click for copyable input
Out[4]//Short=

Shortの機能は,指定した行数になるまで出力式から部分を1つずつ除去する.場合によっては,出力する行数を制限するより,種類別に式の部分を制限した方が分かりやすい.その場合,上位部分だけを表示させるための書式,Shallow[expr,{depth,length}]が使える.この短縮機能を使うと,式の木構造における指定の深さ以下の部分を出力禁止にできる.長さ length は,出力に残しておく関数の引数最大数を指定する.

Shallowで違った式のアウトラインが見られる.
In[5]:=
Click for copyable input
Out[5]//Shallow=
今度は,表示する関数は何でもよいとし,引数を10個までに制限する.
In[6]:=
Click for copyable input
Out[6]//Shallow=

特に,式がネストしているときは(Traceで得られる結果等で),Shallowを使うと式全体を通しで一様に整理でき便利である.

帰納的関数であるフィボナッチ(Fibonacci)の関数を定義する.
In[7]:=
Click for copyable input
Out[7]=
トレースしてみる.結果が長くなるので,表示は禁止にしておく.
In[8]:=
Click for copyable input
Shallowを使い式のアウトラインを表示する.
In[9]:=
Click for copyable input
Out[9]//Shallow=
Shortだと,あまり一様なアウトラインは得られず,式の形が分かりにくい.
In[10]:=
Click for copyable input
Out[10]//Short=

ノートブックインターフェースで生成された出力がかなり大きい場合,Wolfram言語は自動的にその出力にShortを適用する.このように向上したユーザインターフェースにより,ユーザが期待していないような評価の出力を生成しフォーマットするのにWolfram言語が長時間掛けるのを防ぐことができる.

通常,このような割当ての最後にはセミコロンがある.
In[11]:=
Click for copyable input
Out[11]=

ユーザインターフェースのボタンにより,どれくらいの出力を見るかを制御することができる.この動作が有効となる大きさの閾値は,出力式のバイト数による.そのバイト数は,大きさ制限の設定ボタンで開くノートブックインターフェースの環境設定ダイアログで設定することができる.