|
Categorize
著者: 森 洋久 / joshua@globalbase.org ※
プロトタイプ
XML 形式
<Categorize> cmpfunc target </Categorize>
LISP 形式
( Categorize cmpfunc target )
引数
cmpfunc [1] XLT_FUNC 比較用関数
target [1] XLT_PAIR 分類対象データ
属性
評価形式
applicative
所属エージェント
xl
所属環境
Env0
説明
target で与えられるリストを頭からスキャンし、隣同士の要素を cmpfunc によって比較する。一致すると同じカテゴリーと判断し、一つのリストへまとめる。カテゴリごとに分類されたリストのリストを返す。たとえば、
( Categorize = ' ( 11133345661
といったリストを与えると、比較関数 '=' によって、次のような結果を返す。
( ( 11( 33( ( ( 6( 1
ここで、Categrizeはデータのソートをしないので、最初の三つの1と最後の二つの1は、別のカテゴリとしてリストかされることに注意が必要である。同一のカテゴリにまとめようと考える場合は、 Sort [UNDEF REF (xl-Sort)]などによってあらかじめソートしておく必要がある。
cmpfunc は target にリストされる要素の型と同一な引数を二つとる関数であり、戻り値は整数である必要がある。戻り値が0である場合、Categorizeは二つの要素がことなっていると判断する。その他の場合、二つの要素を同一と判断し、同じリストにまとめる。
▲ページトップへ戻る
戻り値
二重リスト
エラー
-
XLE_SEMANTICS_TYPE_MISSMATCH
-
"type missmatch"
Categorize関数の引数 cmpfunc,target の型が異なっている。
-
"type missmatch the return of cmp function"
cmpfunc を実行したところ、その戻り値が整数でない。
-
その他 cmpfunc に指定した関数によって発生するエラーもある。
参考
バグ
▲ページトップへ戻る
|
|