Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > コアとなる言語 > 手続き型プログラミング > スコープ構文 > Module >
Mathematica > コアとなる言語 > パッケージの開発 > 名前空間の管理 > スコープ構文 > Module >

Module

Module
における記号 x, y, ...を局所的に取り扱うように指定する.
Module
x, ... に初期値を定義する.
  • Moduleを使って,このモジュールに局所的な名前を持った局所変数を設定することができる.
  • Moduleは,呼び出されるごとにその局所変数を表す新たな記号を生成する.
  • Moduleは,名前 の局所変数を表すため,名前を とする記号を作成する.この数は,$ModuleNumberの現在の値である.
  • $ModuleNumberの値は,モジュールが使用されるたびに増分される.
  • Moduleは,式 を評価するのに先駆けて,スコープ構成の局所変数を除くに現れるすべての変数を,新たな記号の局所変数で置き換える.
  • Moduleによって作成される記号は,属性はTemporaryを持つ.
  • Moduleによって作成される記号をモジュールから返すことができる.
  • 条件が付随した変換規則の右辺としてModuleを使用することができる.
  • Module構文は,任意の形にネストさせることができる.内側の変数は必要に応じて改名される.
  • Moduleはレキシカルスコープを実装するスコープ構文である.
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
局所関数を持つ動的なプログラミング:
初期化された局所変数を使ったGCDのためのユークリッドアルゴリズム:
モジュールが評価されるたびに新たな一時的シンボルが作られる:
モジュールシンボルは一時的なものであり,参照されなくなると取り除かれる:
Moduleを使うたびに$ModuleNumberが増分される:
局所変数に割り当てる必要がなければ,代りに定数が使われるべきである:
WithModuleよりも高速である:
Blockは値のみを局所化する.新たなシンボルは作らない:
UniqueModuleと同じような方法で新たな変数を作る:
局所変数は大域変数の影響を受けず,大域変数は局所変数の影響を受けない:
Moduleのスコープに持ち込まれたシンボルは名前の不一致による影響を受けない:
Moduleはスコープ構文である.内側の局所変数が外側のものを隠蔽する:
ネストしたスコープでは変数の名前が変えられる:
名前の付け直しを防ぐため,関数をその一部から構築する:
並行割当てはModule変数には適用できない:
バージョン 2 の新機能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
フォーマット:   HTML  |  CDF