型推論とは?
かたすいろん
型推論とは、プログラム中で変数や式の型をコンパイラが自動的に判断する機能のことです。
型推論(Type Inference)とは、プログラマが型を明示的に書かなくても、コンパイラや処理系がコードの文脈から変数・式・関数の型を自動的に導き出す仕組みです。静的型付け言語においても型注釈の記述量を大幅に減らしながら、型安全性を維持できる点が最大の利点です。
型推論のアルゴリズムとして最も有名なのはHindley-Milner型推論です。これはHaskellやML系言語で採用されており、単一化(ユニフィケーション)と呼ばれる手法で型の制約を解消しながら全体の型を決定します。このアルゴリズムは多相型(ジェネリクス)にも対応しており、型変数を含む最も一般的な型(主要型)を自動的に導出できます。
主要な言語での採用状況を見ると、
- Haskell・OCaml・F#:Hindley-Milner完全推論を採用
- Rust・Swift:部分的推論(ローカル変数・クロージャの引数型など)
- TypeScript・Kotlin:代入式や関数戻り値の推論
- C++11以降:autoキーワードによる局所的な推論
型推論はコードの簡潔さと型安全性を両立させる手段として、現代の多くの言語設計に取り入れられています。ただし、推論が複雑になるとコンパイルエラーメッセージが難解になることがあり、型注釈を補うことで可読性とデバッグ効率を高める場面もあります。関数型プログラミングの普及とともに型推論への需要はさらに高まっており、言語設計の重要な要素となっています。
使い方・例文
TypeScriptで const x = 42; と書くだけでコンパイラが x を number 型と推論し、型注釈を省略できます。HaskellやRustでは関数全体の型をコンパイラが導出することも一般的です。
この用語をシェア
最終更新: