Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
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