Maplets[Elements][Evaluate] - Maple 内で実行するコマンドの指定
使い方
Evaluate(opts, args)
パラメータ
opts - option=value の形の等式; ここで option は function, `option`, target, waitforresult のいずれか; Evaluate 要素のためのオプション指定
args - (オプション) Argument 要素
|
説明
|
|
•
|
Evaluate コマンド要素は、元となる Maple セッション内で、引数 args で与えられた引数の集合を持つ Maple の手続きを実行します。
|
•
|
Evaluate 要素の特徴は、オプションを用いて修正が可能です。Maplets パッケージでのオプション指定を簡単にするために、等式を用いることなしにあるオプションと内容を設定することが可能です。次の表では、(左側の列に) 要素、記号、および型、そして (右側の列に) 型がデフォルトで割り当てられると入力を行う、対応するオプションまたは内容を一覧表示します。
|
Elements, Symbols, or Types Assumed Option or Content
x::name, string = y::anything target = x, function = y
any other name or string source option to an Argument element
•
|
Evaluate 要素は、Argument 要素を含むことが可能です。
|
•
|
Evaluate 要素は、Maplet 要素の中に含めることが可能です; 要素に対する onapprove, oncancel, onchange, onclick, ondecline, onstartup の各オプションで用いる等式内に含めることも可能です; あるいは、等式なしに onchange または onclick オプションで受け付ける要素内のパラメータとして、Action 要素内に重ねて含めることも可能です。
|
•
|
次の表に、Evaluate 要素のオプションの、制御および使用法について記述します。
|
|
I 列の x は、(要素の定義を行う) 呼び出し手順で指定される、初期化が可能なオプションを示す。
|
|
R 列の x は、呼び出し手順で必要となるオプションを示す。
|
|
G 列の x は、オプションが Get ツールを用いて取得できる、すなわち読み込み可能であることを示す。
|
|
S 列の x は、 SetOption 要素あるいは Set ツールを用いて設定される、書き出し可能なオプションを示す。
|
Option I R G S
function x
`option` x
target x
waitforresult x
•
|
opts 引数は、maplet のオプションを設定する、1 つまたは複数の以下の等式を含みます。
|
|
function = string または anything
|
|
function 引数が string 型の場合は、評価したい手続きの名称を指定します。手続きに渡す引数 args は、Argument 要素を用いて、必ず中に含めておかなくてはなりません。引数は、要素の順番どおりに受け渡されます。例えば、 TF1 および "TF2" の参照を行う2つのテキストフィールドがある場合:
|
|
Evaluate(function = "diff", Argument( TF1 ), Argument( "TF2" ))
|
|
を用いて、元となる Maple のセッション内で、コマンド diff(TF1, "TF2") を実行します。
|
|
function 引数が string 型でない場合は、name 型の参照を用いて指定される全ての引数に関して適用しない、内部的な手続きを動的に作成します。これにより、指定された数式は、名前で参照される要素の値を用いて、計算されます。Argument 要素は、この場合、Evaluate 要素内では使用できません。例えば、TF1 および "TF2" の参照を行う2つのテキストフィールドがある場合:
|
|
Evaluate(function = 'diff(TF1, TF2)')
|
|
を用いて、元となる Maple のセッション内で、コマンド diff(TF1, "TF2") を実行します。
|
|
引数がユーザの編集できる形で与えられる場合、例えば、ユーザが引数を入力できるテキストフィールドなどの場合は、適さない型になったりあるいは正しく解読できないことがあります。直接 Maple の関数を呼び出す代わりに、Maple の手続きを呼び出して、型のチェックを行うことを推奨します。Get 関数を用いると、より良いエラーの処理が実行可能です。適切な値だけを含む引数の場合、例えば、チェックボックスを用いる場合では、渡される値が安全でより効率的であるため、直接受け渡しを行うほうが良い結果を生みます。例えば、maplet の定義の中に、TF1および "UseCauchy" の参照を行うテキストフィールドおよびチェックボックスがそれぞれにある場合:
|
|
Evaluate(function = "myproc", Argument("UseCauchy"))
|
|
myproc := proc(UseCauchy)
expr := Maplets:-Tools:-Get( TF1::algebraic ); # expecting the text field to be an algebraic object
if UseCauchy then
int( expr, x, 'CauchyPrincipalValue' );
else
int( expr, x );
end if;
end proc;
|
|
更新を行うための target 要素のオプション。デフォルトは、(存在していれば) value オプションとなります。
|
|
target = 要素の参照(name または string )
|
|
waitforresult = true または false
|
|
同じ Action 要素内にある残りの maplet のコマンドを実行する前に、maplet が Evaluate コマンドの結果を待つかどうかの設定。デフォルトの値は、true です。
|
|
|
例
|
|
>
|
with(Maplets[Elements]):
maplet := Maplet([
["Enter an expression", TextField['TF1']('width' = 30)],
[
"Differentiate w.r.t. x:",
Button("Do It", Evaluate('TF1' = 'diff(TF1, x)')),
Button("OK", Shutdown(['TF1']))
]
]):
Maplets[Display](maplet);
|
以下の 3 つの例は、3 つめが重要な優れたエラー処理を行っていることを除いて、同一のものとなります:
>
|
mydiff1 := proc(f)
diff(f, x);
end proc:
maplet1 := Maplet([
["Enter an expression", TextField['TF1']('width' = 30)],
[
"Differentiate w.r.t. x:",
Button("Do It", Evaluate('TF1' = 'mydiff1(TF1)')),
Button("OK", Shutdown(['TF1']))
]
]):
Maplets[Display](maplet1);
maplet2 := Maplet([
["Enter an expression", TextField['TF1']('width' = 30)],
[
"Differentiate w.r.t. x:",
Button("Do It", Evaluate('TF1' = "mydiff1", Argument('TF1'))),
Button("OK", Shutdown(['TF1']))
]
]):
Maplets[Display](maplet2);
mydiff3 := proc()
f := Maplets[Tools][Get]('TF1'::algebraic);
diff(f, x);
end proc:
maplet3 := Maplet([
["Enter an expression", TextField['TF1']('width' = 30)],
[
"Differentiate w.r.t. x:",
Button("Do It", Evaluate('TF1' = "mydiff3", Argument('TF1'))),
Button("OK", Shutdown(['TF1']))
]
]):
Maplets[Display](maplet3);
|
|
|
参照
|
|
Maplets パッケージの概要, Maplets/コマンド要素, Maplets[Display], Maplets[Elements] パッケージの紹介, Maplets[Elements][Action], Maplets[Elements][Argument], Maplets[Elements][Button], Maplets[Elements][Maplet], Maplets[Elements][SetOption], Maplets[Elements][Shutdown], Maplets[Elements][TextField], Maplets[Tools][Get], Maplets[Tools][Set], 名前, 文字列, unapply
|
|