Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
module[option] - モジュールに対するオプション
使い方
option opt1, opt2, ...
options opt1, opt2, ...
パラメータ
opt1, opt2, ... - オプションのための記号または等式
説明
手続きの場合と同様に、モジュールでもオプションを宣言することができます。option は、モジュール定義の先頭部分において、option 宣言文を用いて宣言します。この宣言は、option (options も同義)というキーワードで始まり、1つまたはそれ以上のオプションを表す式列がそれに続きます。各オプション opti は、記号、または左辺が記号になっている等式のいずれかである必要があります。
システムにとって意味不明の option は無視されます。これはモジュール作成者独自の目的に合わせてオプションを利用できるということです;オプションは属性と同等になり、属性と同様にアクセス可能となります。
手続きとモジュールの両方に対して意味のある標準的なオプションは、trace と copyright のオプションだけです。特に、オプション remember, system, arrow, operator, inline はモジュールにとっては意味の無いオプションです。
モジュールについて、事前に意味の定義されているオプションが4つだけ存在します。その1つはモジュールの初期化オプションであり、 load = pname という形式で与えられます。ここで pname は、そのモジュールで宣言されているエクスポート変数や局所変数の中にある手続きの名前です。このオプションが示されている場合、そのモジュールが Maple 倉庫から読み込まれた時に、指定された手続きが使われます。
unload = pname オプションは、そのモジュールが破棄される場合に呼び出される、局所変数またはエクスポートされた手続きの名前を指定します。モジュールが破棄されるのは、それに対するアクセスが不可能となり不要なメモリとして回収の対象になった場合か、Maple を終了する場合です。
モジュールがもはやアクセス不可能となり、unload= 「手続き」 が実行される前に不要なメモリとして回収対象となっても、その手続きを実行しているうちに再びアクセス可能になることもあります。この場合には、モジュールは不要なメモリとして回収の対象にはなりません。 実際に回収の対象として処理されたか、Maple を終了した場合には、unload= 「手続き」を再度実行することはありません。
load= 「手続き」と unload= 「手続き」を使う場合には、引数は不要です。
この2つのオプションを正しく実行するためには、これらを含むモジュール全体を倉庫に保存しておく必要があります( load= や unload= のオプションを使っているモジュール内のメンバーを保存していても、そのモジュール自体を保存していない場合には、指定された手続きは使われることは無いでしょう)。
事前に意味の定義されているモジュールオプションの3つめは、オプション package です。オプション package を用いたモジュールは、システムに Maple のパッケージを表すものとして理解されます。オプション package を用いて作成されたモジュールは、自動的に保護されたエクスポート変数を持ちます。
最後のオプション record は、レコードの識別に使用されます。レコードは、 Record コンストラクタによって作られ、モジュールを用いて表現されます。
例
u := module() export e; local l; option `Copyright (C) Maplesoft, a division of Waterloo Maple Inc. 2003`; end module: v := module() export e; local l; end module: interface( 'verboseproc' = 1 ): print( u );
print( v );
次のモジュールは、倉庫から読み込まれた時に、startup という手続きを呼び出すことで初期化されます。モジュールが不要なメモリとして回収の対象になった時か、Maple を終了した場合には、shutdown という手続きが実行されます。
P := module() export e; local T, startup; option load = startup, unload = shutdown; e := proc( n::posint ) if assigned( T[ n ] ) then T[ n ] else int( expr, x ) end if end proc; startup := proc( ) # store common values local i, expr; global x; for i from 1 to 100 do expr := sin( n * x ) * cos( n * x ); T[ expr, x ] := int( expr, x ) end do end proc: shutdown := proc( ) # print a message printf("Module P is going away\n"); end proc: end module:
Warning, `shutdown` is implicitly declared local to module `P`
このモジュールでは、エクスポートが自動的に保護されます。
m := module() option package; export e; end;
type( m:-e, 'protected' );
package オプションがない時には、モジュールのエクスポートは保護されません。
m := module() export e; end;
参照
module, パッケージ, 手続きのオプション, Record
Download Help Document