2016-05-11 22 views
0

Ich weiß, dass diskriminierte Gewerkschaften auf sich selbst verweisen können, z.Verwendung von früheren Fällen in der Fall-Signatur

type Tree= 
    | Node of Tree 
    | Leaf 

Aber gibt es irgendwelche Mittel, um auf andere Fälle in den Typ-Signaturen zu verweisen? Die beiden folgenden Fehler machen, dass „Der Typ‚Jahr‘ist nicht definiert“ & „Der Typ‚Monat‘ist nicht definiert“

type Period = 
    | Year of int 
    | Month of Year * int 
    | Day of Month * int 
type Period' = 
    | Year of int 
    | Month of Period'.Year * int 
    | Day of Period'.Month * int 

Gibt es irgendeine Form von Anmerkung oder ein Stichwort I muss man noch (analog rec) auf eine solche Nutzung stoßen?

+4

Union Fälle sind keine Subtypen. Sie können einen bestimmten Fall eines Union-Typs nicht als Typ an sich verwenden. – TeaDrivenDev

+0

Ich habe bearbeitet, um es klarer zu machen, dass die beiden Typen (Periode & Periode ') sich nicht auf einander beziehen, sondern auf ihre eigenen Fälle. –

Antwort

4

Ich glaube, Sie sind verwirrt darüber, was einen Gewerkschaftsfall ausmacht. Sie können einen Union-Fall nicht als Typ referenzieren. Ich denke, was Sie suchen, ist Einzel-Fall-DUs wie folgt: