DynamicModule
DynamicModule[{x,y,…},expr]
expr 中のDynamicオブジェクトの評価すべてにおいて,記号 x, y, … の局所的なインスタンスを同じに保つオブジェクトを表す.DynamicModuleで指定された記号は,デフォルトで,Wolframシステムのセッション間でさえもその値を保持する.
DynamicModule[{x=x0,y=y0,…},expr]
x, y, … の初期値を指定する.
詳細とオプション
- DynamicModuleはModuleと同じように,まず expr 中の局所変数に一意的な名前を与える.続いて結果の式を評価し,このバージョンをDynamicModuleで包み込んで返す.
- ノートブックでは,この返されたバージョンがしばしば出力セル中に表示される.Manipulateからの出力がこの例である.
- 表示されているDynamicModuleの形式中でDynamicオブジェクトがインタラクティブに変更・編集された結果,局所変数の値が変化した場合,DynamicModuleオブジェクトはこれを反映するように修正される.
- DynamicModule中の局所変数の値は,Wolframシステムのセッション間で実質的に持続されるように,DynamicModuleを含むノートブックが保存されると,デフォルトで自動的に保存される.
- DynamicModuleオブジェクトを含むノートブックの一部をコピーすると,コピー中の局所変数は,同じ値から始まりはするが,もとの局所変数とは無関係になる.
- 次のオプションを使うことができる.
-
BaseStyle {} 表示オブジェクトのベーススタイル指定 Deinitialization None DynamicModuleがもはや表示できなくなったときに評価される式 DynamicModuleValues Automatic 動的に更新した変数値のデータ ExcludedContexts Automatic SaveDefinitionsから除外されるコンテキスト InheritScope False DynamicModule変数を他のDynamicModuleインスタンスに接続 IncludedContexts All SaveDefinitionsに考慮されるコンテキスト Initialization None DynamicModuleが最初に表示されたときに評価される式 SaveDefinitions False exprに関連するすべての定義を保存するかどうか SynchronousInitialization True 初期化を同期して行うかどうか UndoTrackedVariables None 変更されるとフロントエンドの取り消しメカニズムで追跡される変数 UnsavedVariables {} 値を保存すべきではない変数 - DynamicModuleがはじめて評価されると,評価の最中に局所変数の割当てがはじめて行われる.続いてInitializationオプションの設定は,それが何であれ,DynamicModuleの出力が表示されるときにのみ評価される.
- DynamicModuleオブジェクトが特定のノートブックにはじめて表示されると,局所変数の保存された値が復元され,Initializationオプションが設定されていればそれが評価される.
- UnsavedVariablesリストに含まれる変数を除き,局所変数のすべての値が保存される.記号の一般的な値はDynamicModuleの第1引数に保存される.その他の値はDynamicModuleValuesオプションの設定の中に保存される.
- DynamicModuleは属性HoldAllを持つ.
- DynamicModule構文はどのようにもネストすることができる.必要であれば内側の変数の名前が変更される.
- DynamicModuleは,語彙スコーピングを実装するスコーピング構文である.
例題
すべて開くすべて閉じる例 (1)
動的に変更される局所変数を持つSliderを作成する:
スコープ (6)
DynamicModuleの変数 (3)
DynamicModuleを使って変数を局所化し,大域的な変数との衝突を防ぐ:
Moduleのように,局所変数に初期値を割り当てる:
DynamicModuleの状態 (3)
DynamicModuleを使って異なるWolframシステムセッション間で表示状態を保存する:
Moduleは現行のWolframシステムセッションに一意的な状態しか与えない:
Initializationを使ってコンテンツの表示前に式を評価する:
Initializationは局所変数の割当て後に評価される:
オプション (16)
DynamicModuleValues (1)
局所的な記号の関数定義は自動的にDynamicModuleValuesに挿入される:
ExcludedContexts (1)
デフォルトで,システムについて内部的な特定のコンテキストは初期化オプションには保存されない:
ExcludedContexts{}を使ってプロテクトされていないすべてのシンボルの定義を保存する:
InheritScope (1)
親DynamicModuleから変数を継承するDynamicModuleのあるダイアログボックスを作る:
Initialization (4)
Initializationを使ってコンテンツに必要な評価を保存する:
最初のDynamicModuleはセミコロンで出力が出ないようにされているので,この割当てが実行されることは全くなかった:
SaveDefinitions (2)
アプリケーション (3)
PolarPlotを使って螺線を示す:
特性と関係 (2)
DynamicModuleとModuleは同じように見えるが根本的に異なる:
この場合,どちらのスライダーも動くが,再度開かれた場合は評価されない限りどちらも動かない:
Manipulateは出力作成でDynamicModuleに依存する:
考えられる問題 (1)
テキスト
Wolfram Research (2007), DynamicModule, Wolfram言語関数, https://reference.wolfram.com/language/ref/DynamicModule.html (2021年に更新).
CMS
Wolfram Language. 2007. "DynamicModule." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/DynamicModule.html.
APA
Wolfram Language. (2007). DynamicModule. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DynamicModule.html