创建 了 一 个 二叉树 结构 , 值 可以 是 一 个 有 两 个 分支 的 节点 , 一 个 叶子 或者 是 空 的 。 我 没有 特别 定义 叶子 是 一 个 特定 的 类型 , 所以 我 可以 创建 所有 叶子 都 是 整数 或者 都 是 字符 串 的 树 , 但是 我 怎么 才能 让 它 接受 这 两 种 类型 的 混合 , 所以 一 个 叶子 是 整数 也 是 字符 串 的 树 呢 ?
data Tree a = Empty | Leaf a | Node a (Tree a) (Tree a)
我 想要 的 示例 :一 个 有 两 个 叶子 的 节点 , leaf1 = "a string"
leaf2 = 5
我 目前 的 问题 是 leaf1
和 leaf2
必须 是 相同 的 类型 , 要么 都 是 整数 , 要么 都 是 字符 串 。 如果 我 混合 了 , 我 会 得到 一 个 错误 。
1条答案
按热度按时间v6ylcynt1#
实际上,你不能在Haskell中创建可以包含 any 类型的树。但是,你可以用多个构造函数定义自定义类型,如下所示:
然后使用
Val
类型创建包含两种类型的树: