手続きとしての関数
多くの計算問題で,同じ式を繰返し Mathematica にタイプしなければならない状況が起るときがある.そのようなときは,入力のコマンドを含む関数を定義しておくことで何度も同じ式をタイプしなくても済むようになる.
| Out[1]= |  |
| Out[2]= |  |
これは,
n 項の乗積を計算し,展開する関数

を定義する.
| Out[4]= |  |
ユーザ定義の関数は,本質的にはコマンドを実行するための「手続き(プロシージャ)」である.手続きには複数の計算ステップを記述することができる.区切りのため,ステップとステップの間にはセミコロンを入れる.
関数全体の戻り値は,手続きの最後の式に対する結果である.関数をこのように定義するときは,丸カッコで手続きの部分をくくることに注意.
| Out[6]= |  |
| expr1;expr2;... | 評価する一連の式 |
| Module[{a,b,...},proc] | 局所変数 , b, ... をともなう手続き |
手続きの構築
Mathematica で手続きを記述するとき,手続き内で使う変数は局所的なものとして宣言しておくとよい.そうしておけば,変数が手続きの外で起ることと干渉することがなくなる.変数の局所化は,手続きをモジュールとして宣言することで行うことができる.
前の例で使った関数

はモジュールとして定義されていない.したがって,

の値は「逃げて」しまい,関数が返った後も残ってしまう.
| Out[7]= |  |
次に同じ計算をモジュールを使い定義してみる.局所変数

をモジュール内で定義しておく.
| Out[9]= |  |
ただし,今度は,

の値が「逃げない」ので,参照しても何も返されない.
| Out[10]= |  |