F#中的嵌套联合类型

时间:2009-09-04 19:20:00

标签: f# types

有没有办法在F#中创建嵌套的联合类型?像这样的东西


type MainType =
    | A of
        | AA of int
        | AB of float
    | B of int   

2 个答案:

答案 0 :(得分:3)

不,我不这么认为。这似乎没有比创建两个单独的联合类型更有利,例如:

type NestedType =
| AA of int
| AB of float

type MainType =
| A of NestedType
| B of int

let mainValue = A (AA 1)

答案 1 :(得分:1)

不,你必须分开类型(如在kvb的帖子中)。 我听说过计划在F#中添加多态方差(如ocaml),这样你就可以做类似的事了。

在ocaml,

type mainType =
    | A of [ `AA of int | `AB of float ]
    | B of int