use*_*431 2 f# types treenode discriminated-union
我正在尝试使用区分联合创建树节点数据类型.
但是,编译器给我一个错误说"此声明中不允许使用匿名类型变量"
是什么导致错误?
type TreeNode = | TreeNode of int * (Some (TreeNode)) * (Some(TreeNode))
Run Code Online (Sandbox Code Playgroud)
问题是Some该'T option类型的构造函数之一(因此您可以在编写表达式时使用它来创建选项值).
在有区别的联合的类型定义中,您需要使用类型名称 - 如果您想要左右分支,其中每个分支都可以丢失,那么类型是TreeNode option:
type TreeNode = | TreeNode of int * (TreeNode option) * (TreeNode option)
Run Code Online (Sandbox Code Playgroud)
这是一个非常基本的问题,因此我建议您查看F#wikibook以获取更多信息(或几乎任何F#介绍或书籍).