Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types 为什么在一个受歧视的联盟中使用选项类型是错误的?_Types_F#_Treenode_Discriminated Union - Fatal编程技术网

Types 为什么在一个受歧视的联盟中使用选项类型是错误的?

Types 为什么在一个受歧视的联盟中使用选项类型是错误的?,types,f#,treenode,discriminated-union,Types,F#,Treenode,Discriminated Union,我正在尝试使用判别联合创建树节点数据类型 但是,编译器给了我一个错误,说“此声明中不允许使用匿名类型变量” 错误的原因是什么 type TreeNode = | TreeNode of int * (Some (TreeNode)) * (Some(TreeNode)) 问题在于,Some是'T option类型的构造函数之一(因此在编写表达式时可以使用它来创建选项值) 在有区别的联合的类型定义中,您需要使用类型名称-如果您希望左分支和右分支中的每个分支都可能缺失,则类型为TreeNode o

我正在尝试使用判别联合创建树节点数据类型

但是,编译器给了我一个错误,说“此声明中不允许使用匿名类型变量”

错误的原因是什么

type TreeNode = | TreeNode of int * (Some (TreeNode)) * (Some(TreeNode))

问题在于,
Some
'T option
类型的构造函数之一(因此在编写表达式时可以使用它来创建选项值)

在有区别的联合的类型定义中,您需要使用类型名称-如果您希望左分支和右分支中的每个分支都可能缺失,则类型为
TreeNode option

type TreeNode = | TreeNode of int * (TreeNode option) * (TreeNode option)
这是一个非常基本的问题,因此我建议您查看更多信息(或几乎任何F#简介或书籍)