「ユーザー指定」の定義されたキーの順序を維持しながら、 type のキーを typeの値に[(a,b)]
マッピングする、辞書として機能するペアの単純なリストのように動作する型を使用したいと思います。(つまり、通常のリストと同じように、「最後の要素」として認識されるアイテムを「追加」できるようにしたいと考えています。)ただし、線形パフォーマンスよりも優れたキーのランダムアクセスルックアップが必要です。 . 1 つのオプションは、順序を定義するキーのリストに加えて、通常のマップを維持することです。a
b
Data.Map
data OrderedDict a b = OrderedDict (Map a b) [a]
append
次に、2 つのキー コレクションの同期を維持する操作などを定義します。ただし、同じキーの 2 つの個別のコレクションを維持するのは見苦しく思えます。順序付けられたキーとキーによる効率的なランダム アクセス ルックアップを既に組み合わせた既製のデータ型はありますか?