2009-09-04 2 views

ответ

2

Нет, вы должны отделить типы (как в пост KVB в). Я слышал о планах добавить полиморфную дисперсию (как в ocaml) к F # , которая позволит вам сделать что-то подобное.

В OCaml,

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

Это было бы здорово. – Max

+1

В настоящее время не планируется добавлять полиморфную дисперсию к F #. (Какой из IIRC означает наличие вложенного дискриминационного союза, исправьте?) –

+0

Да. Это позволяет, и спасибо за то, что выяснил этот слух, Крис. – nlucaroni

2

Нет, я так не думаю. Не кажется, много преимуществ над созданием двух отдельных типов профсоюзов, как:

type NestedType = 
| AA of int 
| AB of float 

type MainType = 
| A of NestedType 
| B of int 

let mainValue = A (AA 1) 
+1

Я не выдумывать имя вложенного типа :) – Max

Смежные вопросы