next up previous
Next: 7.6 少し凝った例: 円周率の計算 Up: 7 簡単なユーザー関数の定義の仕方と応用例 Previous: 7.4 例3: 手続き風の使い方

7.5 Block[], Module[]

(準備中)

関数の中である程度複雑な計算をする場合、 変数を使用する必要が生じるでしょうが、 局所的な変数を使用するようにしないと思わぬ副作用が生じます。

次の例は、 局所変数 ip (初期値として $ 1$ を代入) を用いて、 階乗 $ n!$ を計算するための関数を定義したものです (もちろん Mathematica には、階乗を計算する演算子 ! があるので、 こういう関数を作る必要はありませんが)。
  fact[n_]:=Module[{i,p=1}, For[i=1, i<=n, i++, p=p*i]; p]

C言語だったら次のように書くところです。
int fact(int n)
{
  int i, p = 1;
  for (i = 1; i <= n; i++)
    p *= i;
  return p;
}


next up previous
Next: 7.6 少し凝った例: 円周率の計算 Up: 7 簡単なユーザー関数の定義の仕方と応用例 Previous: 7.4 例3: 手続き風の使い方
Masashi Katsurada
平成23年7月19日