For Development HEAD DRAFTSearch (procedure/syntax/module):

12.18 data.priority-map - プライオリティマップ

Module: data.priority-map

プライオリティマップは、キーを値にマッピングする辞書で、 エントリが値によってソートされているものです (エントリがキーでソートされているのはツリーマップです。ツリーマップ参照)。

ソートされたシーケンスだけれど、 キーによって特定の値に素早くアクセスする必要もある、という場合に便利です。

註: 必要なものがプライオリティキューなら、 data.heapが使えます (data.heap - ヒープ参照)。

Class: <priority-map>

{data.priority-map} プライオリティマップのクラスです。公開スロットはありません。 プライオリティマップのインスタンスは、makeメソッドではなく make-priority-mapで作る必要があります。

<ordered-dictioary>を継承し、ディクショナリプロトコルを実装しています。 キーから値へのマッピングに関わる操作は、ディクショナリのジェネリック関数を 使ってください(ディクショナリのためのジェネリック関数参照)。

イテレートする場合は、値の増加順になります。

Function: make-priority-map :key key-comparator value-comparator

{data.priority-map} 空のプライオリティマップを作って返します。 key-comparatorはキーの比較に使われる比較器であり、 またvalue-comparatorは値の順序づけに使われる 順序手続きを持った比較器でなければなりません。 省略された場合はどちらもdefault-comparatorが使われます。

プライオリティマップにdict-comparatorを適用すると、 key-comparatorが返されます。

Function: dict->priority-map dict :optional value-comparator

{data.priority-map} ディクショナリdictと同じキー-値のエントリを持つプライオリティマップを作って 返します。作られるマップのキー比較器はdictのキー比較器と同一で、 値比較器はvalue-comparatorです。後者が省略された場合は default-comparatorが使われます。

Function: alist->priority-map alist :optional key-comparator value-comparator

{data.priority-map} 連想リストalistに含まれるキー-値ペアを内容とするプライオリティマップを作って 返します。省略可能引数key-comparatorvalue-comparatorが プライオリティマップの構築に使われます。省略された場合はdefault-comparator となります。

Function: priority-map-min pmap
Function: priority-map-max pmap

{data.priority-map} プライオリティマップpmap中の、それぞれ最小の値および最大の値を持つエントリの キーと値をペアにして返します。

pmapが空の場合は#fを返します。

pmap中に、value-comparatorで比較して同じになる値を持つエントリが 複数ある場合は、そのうちのどれか一つが返されます。

Function: priority-map-min-all pmap
Function: priority-map-max-all pmap

{data.priority-map} プライオリティマップpmap中の、それぞれ最小の値および最大の値を持つエントリを 全て選び、そのキーのリスト、および値そのものをペアにして返します。 そのリストにあるキーは全て同じ値を持つということです。 返されるキーのリストは変更してはなりません。

pmapが空の場合は#fを返します。

Function: priority-map-pop-min! pmap
Function: priority-map-pop-max! pmap

{data.priority-map} それぞれ、最小および最大の値を持つエントリをひとつpmapから取り除き、 そのエントリのキーと値をペアにして返します。

pmapが空の場合は#fを返します。

pmap中に、value-comparatorで比較して同じになる値を持つエントリが 複数ある場合は、そのうちのどれか一つが選ばれます。



For Development HEAD DRAFTSearch (procedure/syntax/module):
DRAFT