gpt4 book ai didi

recursion - OCaml 中的递归类型?

转载 作者:行者123 更新时间:2023-12-04 05:59:02 25 4
gpt4 key购买 nike

嗨,这是我第一次在 Stack Overflow 上发帖,我在尝试在 OCaml 中构造类型时遇到了问题

我正在尝试构建一个具有节点/叶子/等的类型树。这是我到目前为止。

type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a * tree) | ....

我的节点应该是一种包含其名称和另一棵树作为元组的类型。但是当我尝试编译它时,它说 tree 需要两个参数。所以我试过:
type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a * tree ('a*'b))

我仍然遇到错误。你有没有注意到我做错了什么?谢谢!

最佳答案

type ('a, 'b) tree = Empty | Leaf of 'b | Node of 'a * ('a, 'b) tree

不过,您可能希望您的节点两个有多个子节点
type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a, 'b) tree * 'a * ('a, 'b) tree

PS:比类型声明要小心, Foo of bar * bazFoo of (bar * baz)不一样:第一个是构造函数 Foo有两个字段,第二个只有一个字段,类型为 (bar * baz) .

关于recursion - OCaml 中的递归类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com