IT用語集 › プログラミング › HKT(高カインド型)

HKT(高カインド型)

プログラミング Svenska → 更新: 2026-10-21

型システムの機能の一つで、型コンストラクタ(型を引数に取る型)を抽象化できる。Functor FのFを、List、Option、Treeなど任意のコンテナ型にできる、「ジェネリクスに対するジェネリクス」だ。

HaskellとScalaでは標準機能で、型クラスによる抽象化の土台になる。Monad、Functor、Applicativeはすべて、HKTを必要とする。RustにはHKTがなく、「Rustにモナドがない理由」の議論が絶えない。代わりにGAT(Generic Associated Types)が、大半のユースケースをカバーする。TypeScriptにもなく、コミュニティはfp-tsライブラリで回避している。主流言語にとっては、HKTは理屈としてはきれいだが、単純な場面では複雑さが増える。最近の方向としては、Rust、Swift、Carbonは明示的にHKTを見送る道を選んでいる。

← 用語集に戻る