代数的データ型
Algeraic Data Type,
ADT
代数データ型
直和型
と
直積型
を組み合わせて定義できるデータ型
型同士を結合するもの
一般的には乗法と加法を持つ
リスト型も代数的データ型の一つ ref
『n月刊ラムダノート Vol.1, No.3』.icon
p.15
ないとどんな感じなのか
Pattern Matching
や
Monad型クラス
と組み合わせることでとても強力になる
Pattern Matching
と合わせて語られることが多いけど、パターンマッチがないときはどううれしい
#??
https://speakerdeck.com/inamiy/algebraic-data-type-in-swift
型の数
型同士の代数みたいなもの
引数で与えられた他のデータ型の値を、コンストラクタで包んだようなもの
プリミティブな(?)型Aの性質とプリミティブな型Bの性質をかけ合わせたりする感じ?
#型システム
参考
『n月刊ラムダノート Vol.1, No.3』
https://ja.wikipedia.org/wiki/%E4%BB%A3%E6%95%B0%E7%9A%84%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B
http://walk.northcol.org/haskell/adts/
https://gist.github.com/asufana/851eae50f9ad2084a2b3771675b46d81
https://dev.to/gcanti/functional-design-algebraic-data-types-36kf
https://qiita.com/ymtszw/items/dff02ad6350032688676
http://lqtmirage.hatenablog.com/entry/2018/06/08/142905
https://speakerdeck.com/inamiy/algebraic-data-type-in-swift
https://www.metaltoad.com/blog/sum-algebraic-data-types-haskell-and-swift
https://sumii.hatenablog.com/entry/20060824/1156403303
https://www.m3tech.blog/entry/2020/03/16/113000
https://nymphium.github.io/2020/12/03/貧者の-Algebraic-Data-Types-と(浅い)網羅性判定.html
https://gist.github.com/gregberns/5e9da0c95a9a8d2b6338afe69310b945
https://bartoszmilewski.com/2015/01/13/simple-algebraic-data-types/
https://zenn.dev/eagle/articles/ts-coproduct-introduction
https://zenn.dev/eagle/articles/ts-maybe-introduction