标签: f# types mutual-recursion
是否可以将相互递归类型([<Struct>])分布在不同的文件中?这些类型直接位于命名空间下。
[<Struct>]
我的解决方案是将它们放在一个大文件中并使用type ... and ... and ... etc构造。这是唯一的方法吗?
type ... and ... and ... etc
答案 0 :(得分:17)
您可以使用一种称为解开递归结的技术,您可以将参数化为另一种结构。
所以这个:
type a = B of b and b = A of a
变为:
type 'b a = B of 'b type b = A of b a