Kotlin で 代数的データ型(ADT) を使ってモデル化

関数型プログラミングでは、型を組み合わせて作る型に直和型(sum type)と直積型(product type)が存在する。直和型と直積型のことを代数的データ型という。 『なっとく!関数型プログラミング』では、Scala、F#, Haskell で代数的データ型によるモデル化の例が紹介されていた。 残念なことに、どれも普段触っているプログラ…