Avatar
どうもです🙇‍♂️ (edited)
2:21 PM
「代数的データ型」の代数構造について何も知らないのでちゃんとしたことは言えませんが、直和・直積は圏論による定式化があって、考える圏によって定義は色々と変わります。 (edited)
2:22 PM
例えば集合の圏だと、直和は非交和 X ∪ Y で直積は X×Y。 (edited)
2:23 PM
有限次元ベクトル空間の圏だと直和と直積は同じで X × Y(無限次元になると別) (edited)
2:27 PM
半順序集合自体を一つの圏と見ることもできて、この場合の積は ∧、和は ∨。ブール代数(ブール束?)との関連はこの辺りにあるんだろうと思います(詳しいことは知りません) (edited)
2:28 PM
代数的データ型も恐らく何らかの方法で圏と見なすことができて(型を対象、関数を射と見るのかな…?)、そこでは enum が直和、struct が直積に対応するものになるのだろうと思います。 (edited)
2:30 PM
なので数学的関係については「圏論の和・積」を通してあることになるんだと思います。もっと直接的な関連もあるのかも知れませんが分かりません🙇‍♂️ (edited)