F#循环类型定义循环

use*_*285 0 f# types class definition

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

Dan*_*ter 6

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

type Chicken =
   | Eggs of Egg list
and Egg =
   | Chickens of Chicken list
Run Code Online (Sandbox Code Playgroud)