歧视联盟中的fsharp记录

Rob*_*obF 2 f# types record

我正在尝试这个结构:

type Tree<'a> =
| Leaf 
| Node of { value:'a ; left:Tree<'a> ; right:Tree<'a> }
Run Code Online (Sandbox Code Playgroud)

但是f#似乎不支持这个(奇怪的).但接下来如何使用单独的记录类型执行此操作,然后将其置于循环依赖项中.

Gus*_*Gus 11

使用关键字and来处理循环依赖关系:

type Rec<'a> = { value:'a ; left:Tree<'a> ; right:Tree<'a> }

and Tree<'a> =
| Leaf 
| Node of Rec<'a>
Run Code Online (Sandbox Code Playgroud)