我偶然发现了F#中的这个问题.假设,我想声明两种相互引用的类型:
type firstType =
| T1 of secondType
//................
type secondType =
| T1 of firstType
//................
Run Code Online (Sandbox Code Playgroud)
我该怎么做,所以编译器不会生成错误?
我希望有一个类型A,它有一个属性是类型B的实例.类型B有一个类型为A的实例的属性.问题是,F#按顺序读取源文件.因此,如果我首先定义类型A,那么它将无法识别类型B.如果我首先定义类型B,我不能使它具有A的实例.有没有解决方法,或者这只是糟糕的设计对我而言?