型の合成
from Understanding Types
FP では小さな関数から新しい関数を、小さな型から新しい型を作るために 合成 を用いる。
小さな型から新しい型を作る
F# では 2 つの方法で型を合成できる
AND 型(直積型)
F# では レコード型 と呼ぶ
code:fsharp
type FruitSalad = {
Apple: AppleVariety
Banana: BananaVeriety
Cherries: CherryVariety
}
OR 型(直和型 / 選択型)
F# では 判別共用体 と呼ぶ
code:fsharp
type FruitSnack =
| Apple of AppleVariety
| Banana of BananaVariety
| Cherries of CherryVariety
選択肢が 1 つしかない選択型を定義することも可能(単純型)
code:fsharp
type ProductCode =
| ProductCode of string
type ProductCode = ProductCode of string
プリミティブを内部値として含むラッパー型を定義するため(値オブジェクト)
代数的な型システム