反復関数における評価
反復操作を行うTable,Sum等の組込み関数において,引数評価は多少特別の扱いを受ける.
Table[f, {i, imax}]等の評価で取られる最初のステップでは,i の値を局所的にすることが行われる(「ブロックと局所値」を参照のこと).次に,反復回数の上限
が評価される.式 f は,i の値が確定するまで未評価なまま保持される.反復評価がすべて終了したとき,変数 i にはもとの大域値が戻される.
| Out[1]= |  |
| Out[2]= |  |
Table[f, {i, imax}]のような反復式では,普通,
に特定の値が割り当てられるまでは関数 f は未評価な形のままにしておいた方がよい.任意の値を持つ i に対して有効となる関数 f の完全なシンボル形式が見付からないときは特にそうである.
引数が整数なら階乗を計算し,そうでない場合は

(英語で「数でない」という意味の「Not a Number」の略)を返す関数を定義し,

と呼ぶ.

に整数が割り当てられるまで,

は評価されない.
| Out[4]= |  |
Evaluateを使い,

がシンボル的なオブジェクトであっても

を強制評価させる.
| Out[5]= |  |
Table[f, {i, imax}]のような式において,f を,任意な i を持つ関数として完全なシンボル形式で記述することが可能であれば,このシンボル形式をまず計算してしまい,その後にTableを作用させた方が計算の効率が上がる.これを行うには,Table[Evaluate[f], {i, imax}]を使う.

に新たな値が割り当てられるたびに
Sum式は評価される.
| Out[6]= |  |
実は,この和に相当するシンボル形式の論理式を得ることができる.それは,

がどんな値であっても有効である.
| Out[7]= |  |
Evaluateを挿入しておくことで,
Mathematica にまず和をシンボル的に評価させ,次に,

上で反復させる.
| Out[8]= |  |
| Table[f,{i,imax}] | i に特定な値が割り当てられるまでは f を未評価なままにしておく |
| Table[Evaluate[f],{i,imax}] | i は未知数としておいて,f を強制的に評価する |
反復関数における評価