14. 代数的データ型
• Algebraic data type
• 直積の直和の総和
• 再帰構造
ケースクラスで直積を実現
case class Person(name: String, age: Int)
Case class Company(name: String, phone: String)
Eitherで直積の直和を実現
Either[Person, Company]
sealedトレイトで直積の直和の総和を実現
sealed trait Party
case class Person(name: String, age: Int) extends Party
case class Company(name: String, phone: String) extends Party