【だいすうてきデータがた】
代数的データ型 とは?
最終更新:
💡 「両方そろえる」と「どれかを選ぶ」で、データの形を組み立てる
直積型(複数のフィールドをまとめる型)と直和型(複数の候補から1つを選ぶ型)を組み合わせて複雑なデータ構造を表現する型システムの仕組み。
📌 このページのポイント
代数的データ型って、数学の代数と関係あるの?
型を「かけ算(AND)」と「たし算(OR)」で組み合わせる発想だよ。たとえば色が2種類、サイズが3種類なら、両方を持つ組み合わせは2×3=6通り。このように値の組み合わせから考えると分かりやすいね。
かけ算の型って何なの?
じゃあたし算の型は?
直和型(Sum Type)は、区別できる候補のどれか1つを表すよ。RustのResultなら、成功のOk(値)か失敗のErr(エラー)のどちらかなんだ。候補の中に複数の要素を持たせれば、直和と直積を組み合わせられるよ。
それって null チェックと何が違うの?
ほかの言語でも同様の形を表せるよ。TypeScriptでは、kindなどのタグを持つオブジェクトのユニオンで候補を区別できる。neverへの代入を使った網羅性検査もあるんだ。候補の表し方や、処理漏れを検出する条件は言語ごとに確認しよう。
まとめ:ざっくりこれだけ覚えればOK!
「代数的データ型」って出てきたら「ANDとORで型を組み立てる仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Algebraic Data Type」 = 代数的データ型
💬 直積をかけ算、直和をたし算として捉える呼び名だよ。有限個の値を持つ要素なら、組み合わせの数が積や和で数えられるね