2016-05-11 6 views
0

私は、差別化された組合が自分自身を参照できることを知っています。タイプシグネチャの場合の前のケースの使用

type Tree= 
    | Node of Tree 
    | Leaf 

しかし、タイプシグネチャの他のケースを参照する手段はありますか。次の両方が&

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 

を「型 『月』が定義されていない」「タイプ 『年』が定義されていません」というエラーを発生させる注釈のいくつかのフォームまたはキーワード私はありますこのような使用を許している(まだrecに似ています)遭遇することはありませんか?

+4

ユニオンケースはサブタイプではありません。ユニオンタイプの特定のケースは、それ自体の型として使用することはできません。 – TeaDrivenDev

+0

私は2つのタイプ(期間と期間)がお互いを参照しているのではなく、それぞれのケースを明確にするように編集しました。 –

答えて

4

私はあなたが組合事件を構成するものについて混乱していると思います。ユニオンケースを型として参照することはできません。あなたが探しているのは、このようなシングルケースのDUです。

type Year = Year of int 
type Month = | Month of Year * int 
type Day = Month * int 
type Period = 
    | Year of Year 
    | Month of Month 
    | Day of Day 
関連する問題