Functional programming 如何为树创建联合类型,其中需要';一种键和';b OCaml中的值类型?
我希望创建一个Functional programming 如何为树创建联合类型,其中需要';一种键和';b OCaml中的值类型?,functional-programming,ocaml,Functional Programming,Ocaml,我希望创建一个bst(二进制搜索树)联合类型 它是叶或节点。对于节点,它接受'a键和'b值 我这样做: type 'a*'b bst = | Node of 'a * 'b * ('a*'b) bst * ('a*'b) bst | Leaf;; 但它不起作用 我应该怎么做?您要查找的语法是: # type ('a, 'b) bst = | Node of 'a * 'b * ('a,'b) bst * ('a,
bst
(二进制搜索树)联合类型
它是叶
或节点
。对于节点,它接受'a
键和'b
值
我这样做:
type 'a*'b bst =
| Node of 'a * 'b * ('a*'b) bst * ('a*'b) bst
| Leaf;;
但它不起作用
我应该怎么做?您要查找的语法是:
# type ('a, 'b) bst =
| Node of 'a * 'b * ('a,'b) bst * ('a,'b) bst
| Leaf;;
type ('a, 'b) bst = Node of 'a * 'b * ('a, 'b) bst * ('a, 'b) bst | Leaf
您要查找的语法是:
# type ('a, 'b) bst =
| Node of 'a * 'b * ('a,'b) bst * ('a,'b) bst
| Leaf;;
type ('a, 'b) bst = Node of 'a * 'b * ('a, 'b) bst * ('a, 'b) bst | Leaf
多参数多态类型的语法如下所示:
type ('a, 'b) bst =
| Node of 'a * 'b * ('a, 'b) bst * ('a, 'b) bst
| Leaf;;
多参数多态类型的语法如下所示:
type ('a, 'b) bst =
| Node of 'a * 'b * ('a, 'b) bst * ('a, 'b) bst
| Leaf;;
此外,您可能会遇到麻烦,因为
'a
需要一个比较运算符。这就是为什么在标准库中,Map
和Set
模块作为functor实现的原因,因此可以指定比较顺序
如果您决定采用多态方式,则必须使用“神奇的”默认比较运算符compare
F#中的问题不同,因为有多种方法可以将比较运算符附加到类型。此外,您可能会遇到麻烦,因为
'a
需要比较运算符。这就是为什么在标准库中,Map
和Set
模块作为functor实现的原因,因此可以指定比较顺序
如果您决定采用多态方式,则必须使用“神奇的”默认比较运算符compare
问题在F#中有所不同,因为有多种方法可以将比较运算符附加到类型