Top > Mathematica > プログラム 制御構造Do 文一般のプログラム言語でも存在する Do ループ文である。構文は以下の通りです。 Do[式, {繰り返し範囲のリスト}, ...] 例えば、式中に変数を2つ使用すれば、その後に続くリストは2つ必要になります。 While 文While[条件, 処理1; 処理2; ...] 条件が成立している間、後ろに続く処理を実行します。 条件の判定は後で行われるため、下記の例のように "5未満" の条件でも、 5 の場合が実行されます。 For 文For[初期値, 条件, STEP, 処理1; ...] Table 文Table[式, {範囲のリスト}, ...] 事後に結果が利用できる点で、リストには利点があります。 応用上記の制御構造(繰り返し文)を使用して、 1から100間での総和を計算する例を紹介します。 上記 In[18], In[19] からも分かるように、総和が格納されている変数 sum には、 初期化処理が 必要なことが分かります。Mathematica は、一度宣言した関数や、 格納されている変数の値を 記憶しており、カーネルを終了しない限り、 または故意にクリアしない限り消えることはありません。次の評価に使用するためです。 関数型プログラム自己再起型再起アルゴリズムを利用して、先に紹介した1から100までの総和を計算するプログラムを関数型で記述すると以下のようになる。 Mathematica の再起型プログラムでは、手続きを記述する必要がないことが分かる。 関係を記述したのみで、再起プログラムを書くことができる。 最大値再起プログラムの場合、引数の最大値、つまり再帰的にコールできるネストの深さに 限界がある。以下がそれを証明したサンプルである。 新しい Version の Mathematica では解消されているかもしれないが、 v5.0 では、256 未満が限界のようです。 |