select - 式からの選択
remove - 式からの除去
selectremove - 式からの選択または除去
使い方
select(f, e, b1, ..., bn)
remove(f, e, b1, ..., bn)
selectremove(f, e, b1, ..., bn)
パラメータ
f - ブール値の手続き
e - 任意の式
b1, ..., bn - (オプション)追加の引数
|
説明
|
|
•
|
select 関数はブール値手続き f を満たす式 e の被作用子を選択して e と同じ型を持つ新しいオブジェクトを作ります。f が true を返さないオブジェクトは新しく作られるオブジェクトでは捨てられています。
|
•
|
remove 関数は select の反対です。これは f を満たす e の被作用子を取り除き新しいオブジェクトを作ります。
|
•
|
selectremove 関数は式 e に対して一度に効率的に結果を計算する点を除けば、select(..) および remove(..) と同様に振る舞います。
|
•
|
追加の引数 b1, ..., bn は f に渡されます。
|
•
|
select と remove を用いる典型的な応用は、積 e の因数を変数 x によるものとよらないもの (すなわち定数) に分けることです。これは v := select(has,e,x); に続いて c := remove(has,e,x); を実行することにより成し遂げることができます。しかしながら、v, c := selectremove( has, e, x ); を用いる方がより効率的です。c := e/v; を計算しようとしないで下さい。Maple が式を簡単にする方法により、因子は一般に打ち消しあいません。下の最後の例を見て下さい。
|
|
|
例
|
|
| (2.1) |
>
|
select(isprime, integers);
|
| (2.2) |
>
|
remove(isprime, integers);
|
| (2.3) |
>
|
selectremove(isprime, integers);
|
| (2.4) |
>
|
f := 2*exp(a*x)*sin(x)*ln(y);
|
| (2.5) |
| (2.6) |
| (2.7) |
>
|
selectremove(has, f, x);
|
| (2.8) |
| (2.9) |
>
|
select(type, f, 'name');
|
| (2.10) |
>
|
remove(type, f, 'name');
|
| (2.11) |
>
|
selectremove(type, f, 'name');
|
| (2.12) |
| (2.13) |
>
|
c := remove(has, f, x);
|
| (2.14) |
| (2.15) |
| (2.16) |
|
|