unapply - 式と引数から関数 (オペレータ) を返す
使い方
unapply(expr, x, y, ..)
unapply(expr, x, y, .., options)
unapply(expr, l)
unapply(expr, l, options)
パラメータ
expr - 任意の式
x, y, .., - 変数名
l - 変数名のリスト
options - オプションの引数のリスト
|
説明
|
|
•
|
unapply(expr, x) の結果は、関数オペレータとなります。このオペレータに x を適用すると、元の式が与えられます。
|
unapply(expr,x)(x) ==> expr
unapply(f(x),x) ==> f
•
|
複数変数の式から複数引数のオペレータを構築するためには、全ての変数を引数として unapply に渡すか、あるいは明示的に全ての変数をリストに入れてそれを unapply の 2 つめの引数として渡します。
|
•
|
unapply コマンドは、変数または評価された式の内容を用いてオペレータを構築したい場合に使用してください。
|
|
このオプション variables は、変数名の集合またはリスト、あるいは、1 つの変数名でなければなりません。これらはすべて、unapply に対する入力の変数 (すなわち、リストまたは指定した変数名のいずれか) に対応する必要があります。このオプションがあると、unapply は、指定したvariables が数値に評価しない場合に評価せずに返すオペレータを構成します。
|
|
注意: このオプションは、diff(f(x),x) または DEsol 構造などの、導関数を含む入力に使用することはできません。
|
|
これは、numeric=variables を簡単化したものです。 numeric リストのすべての変数を置きます。
|
|
このオプションは、keyword、または、keywords のリストまたは集合である必要があります。 unapply コマンドは、指定した keywords をオプションとして持つオペレータを構成します。デフォルトでは、オプション {operator,arrow} が使用されますが、arrow,inline,operator,remember, system のいずれも keywords として正しいものです。
|
•
|
unapply コマンドは、lambda calculus の lambda-expressions を行っています。
|
|
|
例
|
|
| (2.1) |
| (2.2) |
| (2.3) |
| (2.4) |
| (2.5) |
| (2.6) |
| (2.7) |
| (2.8) |
| (2.9) |
| (2.10) |
numeric オプションをもつ unapply の例:
>
|
f1 := unapply(x^2+1,x,numeric);
|
| (2.11) |
| (2.12) |
| (2.13) |
つぎの動作は、変数に関する型の指定と異なります。
>
|
f2 := unapply(x^2+1,x::numeric);
|
| (2.14) |
| (2.15) |
Error, invalid input: f2 expects its 1st argument, x, to be
of type numeric, but received x
| |
指定したオプションをもつ unapply の例:
>
|
f := proc() lprint(`called`); 0; end;
|
| (2.16) |
>
|
pol := unapply(x^2+3*x+1+'f'(),x,proc_options={remember,operator,arrow});
|
| (2.17) |
called
| (2.18) |
called
| (2.19) |
| (2.20) |
|
|
参考文献
|
|
|
Gonnet, G.H. "An Implementation of Operators for Symbolic Algebra Systems" SYMSAC July 1986.
|
|
|