ListTools[Classify] - 特性プロパティを使用して list、set、table、または rtable の要素を分類
|
使い方
|
|
Classify(p, L, b1, ..., bn)
|
|
パラメータ
|
|
p
|
-
|
クラスを定義する特性プロパティ
|
L
|
-
|
list、set、table、または rtable; 分類する要素が含まれているオブジェクト
|
b1, ..., bn
|
-
|
(オプション) p に渡される追加引数
|
|
|
|
|
説明
|
|
•
|
Classify(p, L, b1, ..., bn) 関数は、L の要素を特性プロパティ p に従ってグループ化します。つまり、インデックス i を持つテーブル T (T[i] は値 p(e, b1, ..., bn) = i を持つ L の要素 e の集合) を返します。
|
•
|
Classify(p, L, b1, ..., bn) のコールは ListTools[Categorize]((x, y) -> p(x)=p(y), L, b1, ..., bn) とほぼ等価ですが、より効率的です。出力形式も異なります。Categorize はリストのシーケンスを返しますが、Classify はテーブルを返します。一方、Categorize は、一部のプロパティ p に対して (x, y) -> p(x)=p(y) に書き込めないことがある 2 引数関係が認められているという点で、より汎用的です。
|
|
|
互換性
|
|
•
|
ListTools[Classify] コマンドは Maple 16 で導入されました。
|
|
|
例
|
|
>
|
types := Classify(whattype, ["Hello", 1, 2., Pi, x, x+y, exp, "world!"]):
|
>
|
map(print, op(eval(types))):
|
| (1) |
>
|
number_of_distinct_prime_factors := n -> nops(ifactors(n)[2]):
|
>
|
npf30 := Classify(number_of_distinct_prime_factors, [$1..30]):
|
>
|
indices(npf30, nolist);
|
| (2) |
| (3) |
| (4) |
| (5) |
| (6) |
|
|