代数的データ型
Algeraic Data Type データ型の一つ
a kind of composite type, i.e., a type formed by combining other types.
さっぱり説明は理解できない...
以下、妄想。
本屋で立ち読みした Kotlinの本にあって、興味を覚えた用語だが、、
どれくらい理解して覚えているか、書いて見る
enum型も、代数的データ型の一つと言える
なぜなら、それでデータの取りうるケース?を全部カバーしてるからだ。
ADTは、データについての(特定の)演算が閉じているデータ型
enum型は、そのまんまな演算で閉じてる?
例としては、学校の所属状態をデータで表してるのがあり、
Activeなときには学籍番号がある。
他は番号自体がnull
inactive x number は null みたいな演算が定義できればok?
..コードが思い出せない。 Activeではclassで定義して、それ以外は、object(単一の状態しか取らない)でやってたけど..
ググっていたら、良い説明があった。
seals class これを使えるようにしたい。
この 「もしくは」 を型で表現できるのが代数的データ型と言われるものです
成功と失敗、2つを重ね合わせることができるなら、複数の状態を重ね合わせることだってできます。
データとして、限定された何かの型を持つことが保証されてるデータ型で、コンパイラ側で掛け合わせみたいなものが上手くいっているかをチェックしてくれる??? いつか、どこかで使いたい。