F# の型を扱う
from Understanding Types
F# の型の定義方法と値の構築方法は似通っている
レコードの場合
code:fsharp
type Person = {First:string; Last:string}
let aPerson = {First="Alex"; Last="Adam"}
分割代入も可能
code:fsharp
let {First=first; Last=last} = aPerson
ドット記法でフィールドにアクセスできる
code:fsharp
let first = aPerson.First
let last = aPerson.Last
選択型(判別共用体)の場合(型の合成#6690a39575d04f0000e29682)
code:fsharp
type OrderQuantity =
| UnitQuantity of int
| KilogramQuantity of float
構築するには、ケースラベルのいずれかをコンストラクタ関数として使用する
code:fsharp
let anOrderQtyInUnits = UnitQuantity 10
let anOrderQtyInKg = KilogramQuantity 2.5
パターンマッチを用いることで、分解できる
code:fsharp
let printQuantity aOrderQty =
match aOrderQty with
| UnitQuantity uQty -> printfn "%i units" uQty
| KilogramQuantity kgQty -> printfn "%g kg" kgQty
printQuantity anOrderQtyInUnits // 10 units
printQuantity anOrderQtyInKg // 2.5 kg