F#循环类型定义循环

时间:2015-06-19 13:02:47

标签: class types f# definition

我希望有一个类型A,其属性是类型B的实例。类型B具有类型A实例的属性。问题是,F#按顺序读取源文件。因此,如果我首先定义类型A,那么它将无法识别类型B.如果我首先定义类型B,我不能使它具有A的实例。有没有办法绕过这个,或者这只是糟糕的设计就我而言?

1 个答案:

答案 0 :(得分:6)

如果它们位于同一个文件中,您可以定义相互递归类型

type Chicken =
   | Eggs of Egg list
and Egg =
   | Chickens of Chicken list