|
2.9.5 式のアウトライン表示
計算をさせ非常に長い答が返ってくるとき,答のすべてを見たくないときもあるだろう.全体の形がどうなっているか知りたいかもしれない.そして式の形が分かったならば部分的に詳細がどうなっているか見てみたいこともある.
そのようなときは,関数 Shortと Shallowを使うと式を省略表示できる.

式のアウトライン表示
この計算結果は非常に長いものになる.実際に表示させたなら,23行程度続いてしまうだろう.
In[1]:= t = Expand[(1 + x + y)^12] ;
そこで tを短縮表示させる.答の中の <<87>>とは87の項を省略したことを示す.
In[2]:= Short[t]
Out[2]//Short= 
カーネルによる出力式の表示の仕方として,まず,式が長くても短くても単一行で全部分が生成される.次に,表示行の幅をみて,それに収まるように式が複数行に分割される.このとき,各行には上付き文字や分数等の数学記号が入っていて実際の表示では1行分の高さ以上になることもある.なお,短縮表示関数 Shortに指定できる行数は,出力装置に実際に表示される行の数ではなく「論理行数」であることに注意する.
tの答を4行分だけ表示する.さきほどより多くの項が見えるようになる.
In[3]:= Short[t, 4]
Out[3]//Short= 
Shortを別の出力表示の制御機能と組み合せて使ってもよい.ここではInputFormの変換関数と一緒に使う.
In[4]:= Short[InputForm[t]]
Out[4]//Short= 
Shortの機能は,指定した行数になるまで出力式から部分を1つずつ除去する.場合によっては,出力する行数を制限するより,種類別に式の部分を制限した方が分かりやすい.その場合,上位部分だけを表示させるための書式, Shallow[expr, depth, length ]が使える.この短縮機能を使うと,式の木構造における指定の深さ depth以下の部分を出力禁止にできる.長さ lengthは,出力に残しておく関数の引数最大数を指定する.
Shallowを使い最上位の部分だけ表示する.Shortとは違った式tのアウトラインが見られる.
In[5]:= Shallow[t]
Out[5]//Shallow= 
今度は,表示する関数は何でもよいとし,引数を10個までに制限する.
In[6]:= Shallow[t, {Infinity, 10}]
Out[6]//Shallow= 
特に,式がネストしているときは( Traceで得られる結果等で),Shallowを使うと式全体を通しで一様に整理でき便利である.
帰納的関数であるフィボナッチ(Fibonacci)の関数を定義する.
In[7]:= fib[n_] := fib[n-1] + fib[n-2] ; fib[0] = fib[1] = 1
Out[7]= 
トレースしてみる.結果が長くなるので,表示は禁止にしておく.
In[8]:= tr = Trace[fib[8]] ;
Shallowを使い式のアウトラインを表示する.
In[9]:= Shallow[tr]
Out[9]//Shallow= 
Shortだと,あまり一様なアウトラインは得られず,式の形が分かりにくい.
In[10]:= Short[tr, 4]
Out[10]//Short= 
|