F# 使用区分大小写的联合作为记录
示例
有时创建仅具有一种情况的联合类型以实现类似记录的类型很有用:
type Point = Point of float * float let point1 = Point(0.0, 3.0) let point2 = Point(-2.5, -4.0)
这些变得非常有用,因为它们可以通过模式匹配以与tuple参数相同的方式分解:
let (Point(x1, y1)) = point1 //值x1:浮点数=0.0 //valy1:浮点=3.0 let distance (Point(x1,y1)) (Point(x2,y2)) = pown (x2-x1) 2 + pown (y2-y1) 2 |> sqrt // val distance : Point -> Point -> float distance point1 point2 //valit:float=7.433034374