2009-09-04 5 views

Antwort

2

Nein, Sie werden die Typen trennen müssen (wie in kvb der Post). Ich habe von Plänen gehört, polymorphe Varianz (wie in ocaml) zu F # hinzuzufügen, die Ihnen erlauben würde, etwas Ähnliches zu tun.

In ocaml,

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

Das wäre toll. – Max

+1

Es gibt derzeit keine Pläne, polymorphe Varianz zu F # hinzuzufügen. (Welche IIRC bedeutet, eine geschachtelte diskriminierte Verbindung zu haben, richtig?) –

+0

Yeah. Es erlaubt das und danke, dass du dieses Gerücht aufgeklärt hast, Chris. – nlucaroni

2

Nein, ich denke nicht. Das scheint nicht viel Vorteil zu sein, über die Schaffung von zwei getrennten Gewerkschaftstypen wie:

type NestedType = 
| AA of int 
| AB of float 

type MainType = 
| A of NestedType 
| B of int 

let mainValue = A (AA 1) 
+1

Ich habe keine verschachtelten Typnamen zu erfinden :) – Max