Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
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