数理論理学の一分野である型理論において、コンテナはリストやツリーなどのさまざまな「コレクション型」を統一された方法で表現することを可能にする抽象概念である。(単項)コンテナは、形状の型Sと、Sでインデックス付けされた位置の型ファミリPによって定義される。コンテナの拡張は、形状(型S)とその形状の位置から要素型までの関数で構成される従属ペアのファミリである。コンテナは、コレクション型の標準形式と見なすことができる。[1]
リストの場合、シェイプ型は自然数(ゼロを含む)です。対応する位置型は、シェイプごとに、シェイプより小さい自然数の型です。
ツリーの場合、シェイプ タイプはユニットのツリーのタイプです (つまり、情報がなく、構造のみのツリー)。対応する位置タイプは、各シェイプのルートからシェイプ上の特定のノードまでの有効なパスのタイプと同型です。
自然数はユニットのリストと同型であることに注意してください。一般に、シェイプ タイプは、ユニットに適用された元の非ジェネリック コンテナー タイプ ファミリ (リスト、ツリーなど) と常に同型になります。
コンテナの概念を導入する主な動機の1つは、依存型の設定で汎用プログラミングをサポートすることです。[1]
カテゴリカルな側面
コンテナの拡張はエンドファンクタです。これは関数gを取り、
これはリストの場合のよく知られたものと同等でありmap g、他のコンテナーに対しても同様のことを行います。
インデックス付きコンテナ
インデックス付きコンテナ(従属多項式関数とも呼ばれる)はコンテナの一般化であり、ベクター(サイズ付きリスト)などのより広いクラスの型を表すことができます。[2]
要素型 (入力型と呼ばれる) は形状と位置によってインデックス付けされるため、形状と位置によって変化する可能性があり、拡張子 (出力型と呼ばれる) も形状によってインデックス付けされます。
参照
参考文献
- ^ Michael Abbott、Thorsten Altenkirch、Neil Ghani ( 2005)。「コンテナ: 厳密に正の型の構築」。理論計算機科学。342 ( 1): 3– 27。CiteSeerX 10.1.1.166.34。doi : 10.1016/ j.tcs.2005.06.002。
- ^ Thorsten Altenkirch、Neil Ghani、Peter Hancock、Conor McBride、Peter Morris。「Indexed Containers」(PDF)。未発表原稿。 2008年10月30日閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要ですCS1 maint: 複数の名前: 著者リスト (リンク)
外部リンク
- コンテナタイプブログ
