F# Circular 类型定义循环
F# Circular Type Definition Loop
我想要一个类型 A,它有一个 属性,它是类型 B 的一个实例。类型 B 有一个 属性 类型 A 的实例。问题是,F#按顺序读取源文件。所以如果我先定义类型 A,那么它就不会识别类型 B。如果我先定义类型 B,我就不能让它拥有 A 的实例。有没有办法解决这个问题,或者这只是糟糕的设计我呢?
如果它们在同一个文件中,您可以定义相互递归类型
type Chicken =
| Eggs of Egg list
and Egg =
| Chickens of Chicken list
我想要一个类型 A,它有一个 属性,它是类型 B 的一个实例。类型 B 有一个 属性 类型 A 的实例。问题是,F#按顺序读取源文件。所以如果我先定义类型 A,那么它就不会识别类型 B。如果我先定义类型 B,我就不能让它拥有 A 的实例。有没有办法解决这个问题,或者这只是糟糕的设计我呢?
如果它们在同一个文件中,您可以定义相互递归类型
type Chicken =
| Eggs of Egg list
and Egg =
| Chickens of Chicken list